Question:
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 as shown in
this example:
NewTable->Active = false;
NewTable->DatabaseName = "DBDEMOS";
NewTable->TableName = "Temp";
NewTable->TableType = ttParadox;
NewTable->FieldDefs->Assign(Table1->FieldDefs);
NewTable->Table1->IndexDefs->Update(); // Do an update first
NewTable->IndexDefs->Assign(Table1->IndexDefs);
NewTable->CreateTable();