Query1.SQL.text:='Select MaxName=Max('编号') From Table_Name '; query1.open; if not(Query1.Eof and Query1.Bof) then begin First; xx:=query1.fieldbyname('MaxName').asinteger; end;
在store procedure 中(select sum() ***)本身就是一个结果不信就试试
query1.close; query1.sql.clear; query1.sql.text := 'Select MaxName=Max('编号') From Table_Name '; query1.open;
ACTIVE:=TRUE可以返回错误信息!
try
QUery1.Active:=True;
except
ShowMessage('Error');
end;
呵呵!
query1.open;
xx:=query1.fieldbyname('MaxName').asinteger
.CLOSE = =FALSEQUERY1.EXECSQL ====如果你更新了SQL属性,必须重新执行SQL语句,然后打开数据集取数据另外,对于你的问题,你可以用QUERY1.FIELDS(0).ASSTRING/ASINTEGER取到,因为你用了
MAX函数,可能列名变化,当然,你可以写 Select Max('编号') NEWNAME From Table_Name
然后用 query1.fieldbyname('NEWNAME').asinteger
Select Max('编号') as newname From Table_Name这样获取结果
fieldbyanme('newname').asstring;
而query1.execsql不返回数据集,一般是对数据库进行操作(如delete,create,insert,update等等)
Query1.SQL.text:='Select Max(''编号'') From Table_Name ';
其中编号前后要用两个单引号表示一个单引号
query1.open;
if not(Query1.Eof and Query1.Bof) then begin
First;
xx:=query1.fieldbyname('MaxName').asinteger;
end;
query1.close;
query1.sql.clear;
query1.sql.text := 'Select MaxName=Max('编号') From Table_Name ';
query1.open;
v_value := query1.fieldbyname('MaxName').asinteger;你去试试看吧