C5_ORDKEYADD

 ORDKEYADD()
 Add a key to a custom built order
------------------------------------------------------------------------------
 Syntax

     ORDKEYADD([<cOrder> | <nPosition>],
        [<cIndexFile>],[<expKeyValue>]) --> lSuccess

 Arguments

     <cOrder> | <nPosition> is the name of the order or a number
     representing its position in the order list.  Using the order name is
     the preferred method since the position may be difficult to determine
     using multiple-order index files.  If omitted or NIL, the controlling
     order is assumed.

     Specifying an invalid order, such as one that is not custom built, will
     raise a runtime error.

     <cIndexFile> is the name of an index file, including an optional
     drive and directory (no extension should be specified).  Use this
     argument with <cOrder> to remove ambiguity when there are two or more
     orders with the same name in different index files.

     If <cIndexFile> is not open by the current process, a runtime error is
     raised.

     <expKeyValue> is a specific key value that you want to add for the
     current record.  The data type must match that of the order.  If not
     specified, the order's key expression is evaluated for the current
     record and added to the order.

 Returns

     ORDKEYADD() returns true (.T.) if successful; otherwise, it returns
     false (.F.).

 Description

     ORDKEYADD() adds keys to a custom built order which is an order that is
     not automatically maintained by the DBFCDX driver.  You can determine if
     an order is custom built using DBORDERINFO(DBOI_CUSTOM, ...).  When you
     create such an order, it is initially empty.  You must then manually add
     and delete keys using ORDKEYADD() and ORDKEYDEL().

     Note:  An existing order can be changed to a custom built order by
     using the DBORDERINFO() function.

     ORDKEYADD() evaluates the key expression (or <expKeyValue>, if
     specified), and then adds the key for the current record to the order.
     If the order has a for condition, the key will be added only if that
     condition is met, and then only if it falls within the current scoping
     range.

     Note:  You can add several keys for the same record with consecutive
     calls to ORDKEYADD().

     ORDKEYADD() will fail if:

     .  The record pointer is positioned on an invalid record (i.e.,
        at EOF())

     .  The specified order is not custom built

     .  The specified order does not exist

     .  No order was specified and there is no controlling order

     By default, this function operates on the currently selected work area.
     It will operate on an unselected work area if you specify it as part of
     an aliased expression.

 Examples

     .  This example creates a custom index and adds every fiftieth
        record to it:

        USE Customer VIA "DBFCDX"
        // Create custom-built order that is initially empty
        INDEX ON LastName TO Last CUSTOM

        // Add every 50th record
        FOR n := 1 TO RECCOUNT() STEP 50
           GOTO n
           ORDKEYADD()
        NEXT

 Files   Library is CLIPPER.LIB.

See Also: ORDFOR() ORDKEYDEL() ORDSCOPE()

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.