因为要连多个服务器,所以,我在本地内存里建了一个dataset然后把查询返回的dataset都复制到这个本地的dataset中。如果用简单的命令: select top 10 * from xxx
这样的话,几个远程能很快返回来的,然后都正常添加到本地的dataset中。查是如果我要复杂点的命令,要执行几秒或是十几秒的那种~~~
能正常返回,但是返回后无法正常添加到本地的dataset中~~提示是本地的dataset的 field 某字段 cannot be modified~~
============================================
i := SQLDataSet.FieldCount;
while not SQLDataSet.Eof do
begin
TempDataSet.Append;
for j := 0 to i-1 do
begin
TempDataSet.Fields[j].value := SQLDataSet.Fields[j].value;
end;
TempDataSet.Post;
SQLDataSet.Next;
end;=======================================初次发贴,没啥分....不知道给多少合适............
这样的话,几个远程能很快返回来的,然后都正常添加到本地的dataset中。查是如果我要复杂点的命令,要执行几秒或是十几秒的那种~~~
能正常返回,但是返回后无法正常添加到本地的dataset中~~提示是本地的dataset的 field 某字段 cannot be modified~~
============================================
i := SQLDataSet.FieldCount;
while not SQLDataSet.Eof do
begin
TempDataSet.Append;
for j := 0 to i-1 do
begin
TempDataSet.Fields[j].value := SQLDataSet.Fields[j].value;
end;
TempDataSet.Post;
SQLDataSet.Next;
end;=======================================初次发贴,没啥分....不知道给多少合适............
function insertCDSdata(s, d: Tclientdataset): boolean;
var
V:Tbook;
begin
Result:=true;
try
V:=D.GetBook;
if D.Active then
d.AppendData(S.Data,False)
else
D.Data:=S.Data;
Finally
D.GotoBook(V);
D.FreeBook(V);
end;
end;