S
searoom
Unregistered / Unconfirmed
GUEST, unregistred user!
我使用了一个自定义函数,用来给 TClientDataSet.Data 进行赋值,函数如下
function GetCdsData(DBConn:TAdoConnection;
sCom:string):OleVariant;
var
dsp:TDataSetProvider;
aq:TADOQuery;
begin
dsp := TDataSetProvider.Create(nil);
aq := TADOQuery.Create(nil);
try
aq.Connection := DBConn;
aq.CommandTimeout := 60000;
dsp.DataSet := aq;
OpenQuery(aq,DBConn,sCom);
result := dsp.Data;
aq.Close;
finally
aq.Free;
dsp.Free;
end;
end;
然后利用
cds.Date := GetCdsData(DBConn,sCom);
给 cds 进行赋值
出现一个问题:计算超过2、3万条记录都会很慢。
function GetCdsData(DBConn:TAdoConnection;
sCom:string):OleVariant;
var
dsp:TDataSetProvider;
aq:TADOQuery;
begin
dsp := TDataSetProvider.Create(nil);
aq := TADOQuery.Create(nil);
try
aq.Connection := DBConn;
aq.CommandTimeout := 60000;
dsp.DataSet := aq;
OpenQuery(aq,DBConn,sCom);
result := dsp.Data;
aq.Close;
finally
aq.Free;
dsp.Free;
end;
end;
然后利用
cds.Date := GetCdsData(DBConn,sCom);
给 cds 进行赋值
出现一个问题:计算超过2、3万条记录都会很慢。