如何让query返回一个值,尔不是一个纪录集?

zhou0523 2000-01-21 03:47:00
比如,使用query.sql.add(select max(id) from aaa)如何才能得到这个值???
...全文
243 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
CJ 2000-01-27
  • 打赏
  • 举报
回复
有你们那么灌的呀?比我当年还厉害,呵呵。实际上第一、二张帖子把问题说的很清楚了
就是OPEN以后用FIELDS[]/FIELDBYNAME来完成取值,何必再……
macro 2000-01-27
  • 打赏
  • 举报
回复
设一个假字段变量,按一下方式写:
query.sql.add('select var=max(id) from aaa');
Open;
取结果时用 p = fieldbyname('var').asInteger;
jing 2000-01-26
  • 打赏
  • 举报
回复
加个唯一条件吧
jgcui 2000-01-26
  • 打赏
  • 举报
回复
使用存储过程的返回参数!!
supershan 2000-01-26
  • 打赏
  • 举报
回复
with query do
begin
Close;
Sql.Clear;
Sql.Add('select max(id) from aaa');
Open;
if RecordCount>0 then
showmessage(Fields[0].AsInteger);
end;
blaise 2000-01-25
  • 打赏
  • 举报
回复
use exists in the sql sentance.
光明山人 2000-01-22
  • 打赏
  • 举报
回复
完全的写法:

query.SQL.Text := 'select max(id) from aaa';
query.Open;
query.Fields[0].AsInteger就是你要的值(只有一条记录)。
ahfei 2000-01-22
  • 打赏
  • 举报
回复
都可以,我比较常用nico的方法
Nico 2000-01-21
  • 打赏
  • 举报
回复
kxy的方法完全可行,还可以做一点改进
例如
query.sql.add('select max(id) bbb from aaa')
query.open
iMaxID := query.FieldByName(' bbb').AsInteger;
kxy 2000-01-21
  • 打赏
  • 举报
回复
然后 Query.Fields[0].AsInteger
Venne 2000-01-21
  • 打赏
  • 举报
回复
不要用QUERY的OPEN命令或者设置其ACTIVE为真,而是调用Query.ExecSql.
:)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧