gpt4 book ai didi

delphi - 使用别名返回值

转载 作者:行者123 更新时间:2023-12-03 19:24:57 25 4
gpt4 key购买 nike

我写了这样的代码:

sql1 :='select sum(jumlah) as debet from kasir_kas_transaksi where flag in (1,3) and tanggal = to_date('+quotedstr(after)+','+quotedstr('dd-mm-yyyy')+')';

with zquery1 do begin
close;
sql.clear;
sql.Add(sql1);
execSQL;
end;
edit1.Text:=zquery1.fieldbyname('debet').asstring;

然后发生错误,说字段“debet”不存在。
代码有问题吗?
我使用delphi 7和zeos作为连接,以及oracle 11g作为db。谢谢!

最佳答案

使用Open ,而不是 ExecSQL . ExecSQL适用于不返回结果集的查询( INSERTDELETEUPDATE )。 Open用于返回行的查询。
您也不需要使用 SQL.Clear;然后 SQL.Add(); - 你可以设置SQL.Text直接代替。

(你应该停止使用 with ;这是一个不同的话题,但我把它留在这里,因为它是你的代码,而不是我的。)

with ZQuery1 do
begin
SQL.Text := sql1;
Open;
end;
Edit1.Text := ZQuery1.FieldByName('debet').AsString;

请注意,停止连接 SQL 并改用参数。字符串与用户输入的连接让您对 SQL 注入(inject)敞开大门。谷歌小鲍比表找出为什么如果你还不知道那是一件坏事。你可以找到一个例子 here而是使用参数编写代码。

关于delphi - 使用别名返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47565452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com