2007. november 30., péntek

How to update the IndexDefs property of a TTable


Problem/Question/Abstract:

Why is it that when I create a table using the TTable component's CreateTable method it creates the fields correctly but does not create the indexes even though I do a NewTable.IndexDefs.Assign(Table1.IndexDefs)?

Answer:

This is the correct way to transfer the index definition to NewTable, however, the IndexDefs property of Table1 may not be up-to-date so you need to call the Update method of Table1's IndexDefs property prior to its assignment to NewTable like this example shows:

with NewTable do
begin
  Active := False;
  DatabaseName := 'DBDEMOS';
  TableName := 'Temp';
  TableType := ttParadox;
  FieldDefs.Assign(Table1.FieldDefs);
  Table1.IndexDefs.Update; { Do an update first }
  IndexDefs.Assign(Table1.IndexDefs);
  CreateTable;
end;

Nincsenek megjegyzések:

Megjegyzés küldése