Как можно скопировать таблицу?
Есть простой способ копировать целую таблицу базы данных с компонентом TTable:
procedure CopyTableStructure(Source: TTable; DB,Dest: string);
var NewTable: TTable;
begin
NewTable := TTable.Create(self);
with NewTable do
begin
Databasename := DB;
Tablename := Dest;
FieldDefs.Assign(Source.FieldDefs);
IndexDefs.Assign(Source.IndexDefs);
CreateTable;
NewTable.Destroy;
end;
end;
Параметры, которые Вы должны передать этой функции - открытый объект TTable, BDE псевдоним и имя новой таблицы:
Table1.Active := true;
CopyTableStructure(Table1,'DBALIAS','NewTable');
Копирование всего содержимого также просто:
var
hs: string;
i: integer;
{ ... }
Source.First;
with NewTable do
begin
while not Source.EOF do
begin
Append;
for i := 0 to Source.FieldCount - 1 do
begin
hs := Source.Fields[i].FieldName;
NewTable[hs] := Source[hs];
end;
Source.Next;
end;
end;
// Source должен быть от типа TDataset
// (например: TTable, TQuery или
// TClientDataset).
// И не забудьте Post.........
end;
Source.Next;
end;
post;
end;
По материалам http://delphi.3000.com
|