我做过差不多的东西,这一段代码可以参考一下: for i:=0 to TempForm.DBGrid1.SelectedRows.Count-1 do begin GotoBook(pointer(TempForm.DBGrid1.SelectedRows.Items[i])); ClientDataSet2.Append; for j:=0 to ClientdataSet1.RecordCount-1 do begin ClientDataSet2.Fields.Fields[j].value:=ClientDataSet2.Fields.Fields[j].value; end; end;
只要两个clientdataset的结构是一样的,没有什么难度。 你的选择了多条记录之后,单击按钮引发下面的处理: with clientdataset2 do begin first; for I := 0 to RecordCount-1 do begin if DBGrid1.SelectedRows.CurrentRowSelected then begin for J := 0 to Dbgrid1.Columns.Count-1 do begin clientdataset1.fields[J].value :=clientdataset2.Fields[J].value end; end; Next; end; end;
在多层数据库中,ClientDataset是映射到数据库中一个具体的表。如果要使ClientDataset2的一条记录加到另外一个ClientDataset1上,那么ClientDataset1与
ClentDataset2映射的表的结构应该一样或者是同一个表(不过如是同一个表的话,那
就没有必要加了)。如果满足上叙条件的话,你就可以这样作:
clientdataset1.append;
clientdataset1.fieldvalue['字段名']:=clientdataset1.fieldvalue['字段名'];
、、、、、、、
clientdataset1.applyupgrades(-1);
???有这个方法吗??
for i:=0 to TempForm.DBGrid1.SelectedRows.Count-1 do
begin
GotoBook(pointer(TempForm.DBGrid1.SelectedRows.Items[i]));
ClientDataSet2.Append;
for j:=0 to ClientdataSet1.RecordCount-1 do
begin
ClientDataSet2.Fields.Fields[j].value:=ClientDataSet2.Fields.Fields[j].value;
end;
end;
你的选择了多条记录之后,单击按钮引发下面的处理:
with clientdataset2 do
begin
first;
for I := 0 to RecordCount-1 do
begin
if DBGrid1.SelectedRows.CurrentRowSelected then
begin
for J := 0 to Dbgrid1.Columns.Count-1 do
begin
clientdataset1.fields[J].value :=clientdataset2.Fields[J].value
end;
end;
Next;
end;
end;