我想实现以下功能:
有T1和T2两个表,T1表有N条数据,T2是定义了字符段的空表,我想每次应用程序运行时就自动给T2录入数据,T2的数据来源就是T1中满足一定条件的数据条数。其中T1,T2通过adoquery连接,t2通过adoquery2连接。
我是这样做的:
adoquery2.FieldByName('').AsInteger:=adoquery3.SQL.Add('SELECT count(*) FROM T1 WHERE 限制条件'),可是这样不管怎么返回的值都是1,不解?
要怎么在ADOQUERY中实现对数据表数据条数的统计呢?
有T1和T2两个表,T1表有N条数据,T2是定义了字符段的空表,我想每次应用程序运行时就自动给T2录入数据,T2的数据来源就是T1中满足一定条件的数据条数。其中T1,T2通过adoquery连接,t2通过adoquery2连接。
我是这样做的:
adoquery2.FieldByName('').AsInteger:=adoquery3.SQL.Add('SELECT count(*) FROM T1 WHERE 限制条件'),可是这样不管怎么返回的值都是1,不解?
要怎么在ADOQUERY中实现对数据表数据条数的统计呢?
adoquery2.FieldByName('').AsInteger:=adoquery3.SQL.Add('@@rowcount ');
adoquery3.SQL.Add('SELECT * FROM T1 WHERE 限制条件 ');//注意加空格
adoquery2.FieldByName('').AsInteger:=adoquery3.SQL.Add('@@rowcount ');
////////////////////
楼主的程序有意思,你右边的函数的返回值是adoquery的add操作成不成功的返回值,你居然用来当成是返回的count(*)的值,有意思。
if ADOQuery3.Active then
ADOQuery3.close;
ADOQuery3.SQL.Text:='Select count(*) form where 条件';
ADOQuery3.Open;
try
ADOQuery2.FieldByName('').AsInteger:=ADOQuery3.Fields[0].AsInteger;
finally
ADOQuery3.Close;
end;
adoquery3.SQL.Add('SELECT count(*) as 和 FROM T1 WHERE 限制条件');
adoquery3.exesql;
adoquery2.fieldbyname('').asinteger:=adoquery3.fieldbyname('和').asinteger;
adoquery2.post;
ADOQr_Tmp.SQL.Clear;
ADOQr_Tmp.SQL.Add('SELECT Count(*) FROM 订单明细');
ADOQr_Tmp.Open; ADOQuery2.close;
ADOQuery2.Open;
ADOQuery2.Edit;
ADOQuery2.FieldByName('SUM_Count').Value := ADOQr_Tmp.fields[0].Value;
ADOQuery2.Post;