Sorting records
Go Up to Working with Tables
Contents
An index determines the display order of records in a table. In general, records appear in ascending order based on a primary index. This default behavior does not require application intervention. If you want a different sort order, however, you must specify either
- An alternate index.
- A list of columns on which to sort.
Specifying a different sort order requires the following steps:
- Determining available indexes.
- Specifying the alternate index or column list to use.
Retrieving a list of available indexes with GetIndexNames
At runtime, your application can call the GetIndexNames
method to retrieve a list of available indexes for a table. GetIndexNames
returns a string list containing valid index names. For example, the following code determines the list of indexes available for the CustomersTable
dataset:
var IndexList: TList; {...} CustomersTable.GetIndexNames(IndexList);
Specifying an alternative index with IndexName
To specify that a table should be sorted using an alternative index, specify the index name in the table component’s IndexName
property. At design time you can specify this name in the Object Inspector, and at runtime you can access the property in your code. For example, the following code sets the index for CustomersTable
to CustDescending
:
CustomersTable.IndexName := 'CustDescending';
Specifying sort order for SQL tables
In SQL, sort order of rows is determined by the ORDER BY
clause. You can specify the index used by this clause either with the
IndexName
property, to specify an existing index, orIndexFieldNames
property, to create a pseudo-index based on a subset of columns in the table.
IndexName
and IndexFieldNames
are mutually exclusive. Setting one property clears values set for the other.