请教 ClientDataSet--------> AppendData 的奇怪问题
两个TClientDataSet控件
Cds_All,Cds_get : TClientDataSet;
Cds_get的RemoteServer及ProviderName都设置正确
Cds_All的RemoteServer,ProviderName没有设置.
实现目的:
Cds_get调用存储过程获得记录(需要循环去取数据)
Cds_All将Cds_get每次取出的数据Append.
function TForm1.GetAllData: Boolean;
var
i : Integer;
iData : OleVariant;
begin
cds_All.Data := null;
for i:=0 to List.count-1 do
begin
if GetData(List.String[i],iData) then
Cds_All.AppendData(iData,true);
end;
end;
end;
function TForm1.GetData(id:String;var idata : OleVariant): Boolean;
var
sqlstr : String;
i : Integer;
begin
result := false;
try
with Cds_get do
begin
Close;
Params.Clear ;
CommandText := '{call Get_Bill_Data(?)}' ;
Params.CreateParam(ftInteger , 'pid', ptInput).AsString:= id;
Open;
if RecordCount > 0 then
begin
idata := Data;
result := true;
end;
end;
except
Exit;
end;
end;
结果:
发现Cds_get取出的数据 append 到Cds_All中后有个字段值变化了,
F1 F2 F3
Cds_get AA 6 CC
Cds_All AA 31052 CC