Condividi tramite


IDXCOLLATE( ) Function

Returns the collating sequence for an index or index tag.

IDXCOLLATE([cCDXFileName,] nIndexNumber [, nWorkArea | cTableAlias])

Return Values

Character

Parameters

  • cCDXFileName
    Specifies the name of the compound index file. The compound index file you specify can be the structural compound index file automatically opened with the table or an independent compound index file.

  • nIndexNumber
    Specifies the index or index tag for which IDXCOLLATE( ) returns the collating sequence. IDXCOLLATE( ) returns the collating sequence for indexes and index tags in the following order as nIndexNumber increases from 1 to the total number of open index files and index tags:

    1. Collating sequences for single-entry .idx index files (if any are open) are returned first. The order in which the single-entry index files are included in USE or SET INDEX determines how the collating sequences are returned.
    2. Collation sequences for tags in the structural compound index (if one is present) are returned next. The collating sequences are returned for the tags in the order in which the tags are created in the structural compound index.
    3. Collating sequences for tags in any open independent compound indexes are returned last. The collation sequences are returned for the tags in the order in which the tags are created in the independent compound indexes.

    The empty string is returned if nIndexNumber is greater than the total number of open single-entry .idx files and structural compound and independent compound index tags.

  • nWorkArea
    Specifies the work area of the table for which IDXCOLLATE( ) returns index file and index tag collating sequences.

    IDXCOLLATE( ) returns the empty string if a table isn't open in the work area you specify.

  • cTableAlias
    Specifies the alias of the table for which IDXCOLLATE( ) returns index file and index tag collation sequences.

    Visual FoxPro generates an error message if you specify a table alias that doesn't exist.

Remarks

IDXCOLLATE( ) can be used to return the collating sequence for each tag in multiple-entry compound index files, allowing you to completely delete an index file and rebuild it correctly, using a series of SET COLLATE and INDEX commands.

Note that IDXCOLLATE( ) is not required for the proper functioning of REINDEX, because the collation sequence information is present in existing indexes and index tags.

For additional information about Visual FoxPro's international support, see Developing International Applications.

Example

The following example opens the Customer table in the testdata database. FOR ... ENDFOR is used to create a loop in which IDXCOLLATE( ) is used to display the collation sequence of each index tag in the Customer structural index. The name of each structural index tag is displayed with its collation sequence.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer     && Open Customer table.
CLEAR

FOR nCount = 1 TO 254
   IF !EMPTY(TAG(nCount))  && Checks for tags in the index.
   ? TAG(nCount) + ' '  && Display tag name.
   ?? IDXCOLLATE(nCount)  && Display collation sequence.
   ELSE
      EXIT  && Exit the loop when no more tags are found.
   ENDIF
ENDFOR

See Also

SET COLLATE | Developing International Applications | INDEX Command | CREATE TABLE - SQL Command | CREATE CURSOR - SQL Command | ALTER TABLE - SQL Command | INDEX Command