Необходимы два TTable, связанные с одной таблицей. Когда Table1 позиционируется в копируемой строке, с помощью Table2 вы можете выполнить операцию добавления записи. Пример: {только для демонстрации идеи, пример может быть нерабочим}
procedure TForm1.Button1Click(Sender: TObject); var i: Cardinal ;srcStream: TBlobStream ;begin try with Table1 dobeginCheckBrowseMode ;if EOF or BOF then raise Exception.Create('Разместите курсор на правильной строке');end ;with Table2 dobeginAppend ;for i := 0 to Table1.FieldCount - 1 doif Table1.Fields[i].DataType < ftBytes thenFieldByName(Table1.Fields[i].FieldName).Assign(Table1.Fields[i])elsetrysrcStream := nil ;srcStream := TBlobStream.Create(TBlobField(Table1.Fields[i]), bmRead) ;TBlobField(FieldByName(Table1.Fields[i].FieldName)).LoadFromStream(srcStream) ;finallyif Assigned(srcStream) then srcStream.Free ;end ;Post ;end ;excepton E: EDBEngineError do MessageDlg(E.Message, mtError, [mbOk], 0) ;on E: Exception do MessageDlg(E.Message, mtError, [mbOk], 0) ;end ;end; |
OAmiry/Borland [000599]