Delphi Examples: DbiDeleteIndex

<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

Delphi Examples: DbiDeleteIndex

Return to chapter overview

Delete the specified index.

Delphi users should normally call TTable.DeleteIndex rather directly calling dbiDeleteIndex. The method TTable.DeleteIndex is defined as:

 procedure DeleteIndex(const Name: string);

The following example removes an alias called "ByCompany" from TTable Table1:

 Table1.DeleteIndex('ByCompany');

Delete the active index on a table.

Most Delphi users should use Table.DeleteIndex. This example uses the following input:

 fDbiDeleteIndex(CustTemp, False);

 

The procedure is defined as:

procedure fDbiDeleteIndex(Table: TTable; Tag: Boolean);

var

 ActiveIdx: IDXDesc;

begin

if not Table.Exclusive then

  raise EDatabaseError.Create('Table must be opened exclusively to delete index');

 Check(DbiGetIndexDesc(Table.Handle, 0, ActiveIdx));

 // Cannot delete the active index, so change to default

 Table.IndexName := '';

 Table.IndexFieldNames := '';

 Check(DbiDeleteIndex(Table.DBHandle, Table.Handle, nil, nil, ActiveIdx.szName,

   ActiveIdx.szTagName, 0));

end;