Mega Code Archive

 
Categories / Delphi / ADO Database
 

Creating indexes with the ttable create function

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();