如何使用 Delphi 中的 SQLQuery 组件访问 Select count(*) 的结果

How do I access the result of a Select count(*) using an SQLQuery component in Delphi

我正在使用 Delphi RAD Studio 9 和 Firebird 2.5

我想使用符合特定条件的行数计数。 当我把

Select count(*) from VRDB where Lname - 'SMITH'

进入 SQL 属性 ,在打开 SQLQuert1 时,我收到错误消息

SQLQuery1: Unable to determine field names for %s.

我假设这意味着 Firebird 或 Delphi 不知道如何处理结果。

如何捕获查询结果? (我的查询语句使用 isql 运行良好。)

尝试使用

select count(*) CNT from VRDB where Lname = 'SMITH'

在 Delphi 10 Seattle 使用 Firebird 数据库,以下对我来说很好用:

procedure TForm2.btnCountClick(Sender: TObject);
begin
  SqlQuery3.Sql.Text := 'select count(*) from maimages';
  SqlQuery3.Open;
  Caption := IntToStr(SqlQuery3.Fields[0].AsInteger);
end;

顺便说一句,"RAD Studio 9" 是指哪个 Delphi 版本?如果您指的是 Delphi 2009,我在 D7 之后的最早 Delphi 版本是 XE4,上面的代码也可以正常工作。

无需更改您的查询字符串。只需引用 FieldByName ('COUNT').AsInteger.