使用别名名称返回值



我写了这样的代码:

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;

然后,发生错误的错误是不存在的。代码中有问题吗?我将Delphi 7和Zeos用作连接,以及Oracle 11g作为DB。谢谢!

使用Open,而不是ExecSQLExecSQL用于不返回结果集的查询(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注入。Google Little Bobby Tables 找出如果您不知道这是一件坏事。您可以在这里找到一个使用参数编写代码的示例。

相关内容

  • 没有找到相关文章

最新更新