select Max([ID]) from tablename 建议不要使用系统保留的关键字(例如“ID”)作为字段的名称
搞定了 原来是因为我执行SQL语句用的是Query.ExecSQL(),不返回值,所以找不到, 用Query.Open()就行了。但是问题又来了,我用'select top 1 id from tablename order by id desc '就可以返回赋值,用'select Max(ID) from tablename'在赋值时就说找不到'ID'这个字段,语句在SQL里运行都是正确的,而且我也没用系统保留的关键字(例如“ID”)作为字段的名称啊。
为什么用'select top 1 id from tablename order by id desc '得到的结果是对的,显示的也是对应的查询的字段名而用'select Max(ID) from tablename'得到的结果是对的而字段名则是Expr1,估计问题是出在这里谁能告诉我是怎么回事呢 谢谢
这样写就对了: 在Query中的语句这样写 select max(ID) as maxid form tablename 然后付值时这样写:变量:=query.fieldbyname('maxid').asinteger;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('select Max(ID) from tablename');
AdoQuery1.Open();
i:=AdoQuery1.FieldByName('ID').AsInteger;
select Max([ID]) from tablename 建议不要使用系统保留的关键字(例如“ID”)作为字段的名称
用Query.Open()就行了。但是问题又来了,我用'select top 1 id from tablename order by id desc '就可以返回赋值,用'select Max(ID) from tablename'在赋值时就说找不到'ID'这个字段,语句在SQL里运行都是正确的,而且我也没用系统保留的关键字(例如“ID”)作为字段的名称啊。
在Query中的语句这样写 select max(ID) as maxid form tablename
然后付值时这样写:变量:=query.fieldbyname('maxid').asinteger;