举例如下: procedure TForm2.Button3Click(Sender: TObject);begin with ADOQuery1 do begin close; sql.Clear; sql.Add('select xh,avg(sl) as sla from slinfo group by xh '); Open; showmessage(FieldByName('sla').AsString); showmessage(Fields.Fields[1].AsString); end; end;
with query1 do begin close; sql.clear; sql.add('select avg(Price) as avg_Price from Indepot '); open; edit1.text :=query1.fieldbyname('avg_Price').asstring; end;
直接filedbyname('avg(内容)')不可以吗?
select avg(ziduan) as newziduan from table adoquery1.fieldbyName('newziduan').asstring
这就是csdn的魅力,如果分那么好拿你们也觉得太没意思,太没技术含量了.
var sTmp: string; begin result := -1; with TClientDataSet.Create(nil) do try sSql := 'select id,avg(nvl(money,0))as avgmoney from aaa group by id '; //qryData为一个专门执行查询SQL的函数 if not qryData(sSql,vdata) then raise Exception.Create('无法连接数据库,请检查网络连接!'); Data := vdata; if (not Eof) then //取得你要的值 sTmp := FieldByName(avgmoney ).AsString; finally free; end; result := 0; end;
也可以直接通过序号取得。
procedure TForm2.Button3Click(Sender: TObject);begin
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select xh,avg(sl) as sla from slinfo group by xh ');
Open;
showmessage(FieldByName('sla').AsString);
showmessage(Fields.Fields[1].AsString);
end;
end;
begin
close;
sql.clear;
sql.add('select avg(Price) as avg_Price from Indepot ');
open;
edit1.text :=query1.fieldbyname('avg_Price').asstring;
end;
adoquery1.fieldbyName('newziduan').asstring
sTmp: string;
begin
result := -1;
with TClientDataSet.Create(nil) do
try
sSql := 'select id,avg(nvl(money,0))as avgmoney from aaa group by id ';
//qryData为一个专门执行查询SQL的函数
if not qryData(sSql,vdata) then
raise Exception.Create('无法连接数据库,请检查网络连接!');
Data := vdata;
if (not Eof) then
//取得你要的值
sTmp := FieldByName(avgmoney ).AsString;
finally
free;
end;
result := 0;
end;