1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| // Ici je passe le nom de table source qui est bien présente et le nom de la table à créer
procedure TDBConnection.CopyTableToCloneTable(ASourceTableName, ACloneTableName: string);
var
FFDCloneTable : TFDTable;
begin
try
FFDBatchMove.Options := [poClearDestNoUndo, poIdentityInsert, poCreateDest]; // Ici je demande que la table soit bien créée
FFDCloneTable := TFDTable.Create(nil);
try
FFDTable.Active := False;
FFDTable.ConnectionName := FFDConnection.ConnectionName;
FFDTable.TableName := ASourceTableName;
FFDTable.Active := True;
FFDCloneTable.Active := False;
FFDCloneTable.ConnectionName := FFDConnection.ConnectionName;
FFDCloneTable.TableName := ACloneTableName;
FFDCloneTable.Active := True;
FFDBatchMoveDatasetReader.DataSet := FFDTable;
FFDBatchMoveDatasetWriter.DataSet := FFDCloneTable;
FFDBatchMove.Reader := FFDBatchMoveDatasetReader;
FFDBatchMove.Writer := FFDBatchMoveDatasetWriter;
FFDBatchMove.GuessFormat;
FFDBatchMove.Execute;
//******************** BDE Version ***************************
// FCloneTable.DatabaseName := FDatabase.DatabaseName;
// FCloneTable.TableName := ACloneTableName;
//
// FTable.Active := False;
// FTable.DatabaseName := FDatabase.DatabaseName;
// FTable.TableName := ASourceTableName;
// FTable.Active := True;
//
// FBatchMove.Source := FTable;
// FBatchMove.Destination := FCloneTable;
// FBatchMove.Mode := batCopy;
// FBatchMove.Execute;
finally
FreeAndNil(FFDCloneTable);
end;
except
raise;
end;
end; |
Partager