Копирование таблицы (структура и содержание)
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;
Комментарии