看看这个复制当前记录的函数有什么问题,为什么不能复制子表...(50分)

  • 主题发起人 VeryCoolBoy
  • 开始时间
V

VeryCoolBoy

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure CopyCurrRec(DataSet: TDataSet);
var
i,RecordCount:integer;
BookMark:TBookMark;
Values:array of Variant;
ChildCds:TDataSet;
begin
SetLength(Values,DataSet.FieldCount);
for i:=0 to DataSet.FieldCount - 1 do
begin
if DataSet.Fields.DataType<>ftDataSet then
Values:=DataSet.Fields.Value
else begin
ChildCds:=TDataSetField(DataSet.Fields).NestedDataSet;
RecordCount:=ChildCds.RecordCount;
ChildCds.First;
While ChildCds.RecNo <= RecordCount do
begin
BookMark:=ChildCds.GetBookmark;
CopyCurrRec(ChildCds);
ChildCds.GotoBookmark(BookMark);
ChildCds.Next;
end;
end;
end;
DataSet.Append;
CopyCurrRecProc(DataSet);
for i:=0 to DataSet.FieldCount - 1 do
begin
if DataSet.Fields.Value <> NULL then Continue;
if DataSet.Fields.DataType<>ftDataSet then DataSet.Fields.Value:=Values
end;
end;
 
DataSet.Append;
CopyCurrRecProc(DataSet); //这个没什么用吧!!!!
for i:=0 to DataSet.FieldCount - 1 do
begin
if DataSet.Fields.Value <> NULL then Continue;
if DataSet.Fields.DataType<>ftDataSet then DataSet.Fields.Value:=Values
else ..... //对上面获得的 ChildCds 进行处理。
end;
 
顶部