var i:Extended; begin i:=0; with adoquery1 do begin close; sql.clear; sql.add('select @in=sum(jij) from CW where km=101'); open; if not eof then i:=fields[0].asfloat; end;
我是用三层结构,所以这样写: dm.CDS_CW_01.CommandText:='select sum(jij) as ff from CW where km=101' dm.CDS_CW_01.Execute(); if not dm.CDS_CW_01.Eof then sum1:=dm.CDS_CW_01.Fields[0].asfloat; 可运行完,sum1还是为零呀? 这是怎么回事呀?
var mn:real; with adoquery1 do begin close; sql.clear; sql.add('select sum(jij) as km from CW where km=101'); open; if not eof then mn:=adoquery1.fieldbyname('km').asfloat; end; end;
i:Extended;
begin
i:=0;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select @in=sum(jij) from CW where km=101');
open;
if not eof then
i:=fields[0].asfloat;
end;
dm.CDS_CW_01.CommandText:='select sum(jij) as ff from CW where km=101'
dm.CDS_CW_01.Execute();
if not dm.CDS_CW_01.Eof then
sum1:=dm.CDS_CW_01.Fields[0].asfloat;
可运行完,sum1还是为零呀?
这是怎么回事呀?
dm.CDS_CW_01.Execute();可以看出,你用的是ClientDataSet,而它的execute是不返回结果的,改用OPEN吧,就这么简单;
mn:real;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select sum(jij) as km from CW where km=101');
open;
if not eof then
mn:=adoquery1.fieldbyname('km').asfloat;
end;
end;