DbServer.OrderKeyAdd Method | |
Add a key to a custom built order.
Namespace:
VO
Assembly:
VORDDClasses (in VORDDClasses.dll) Version: 2.19
Syntax VIRTUAL METHOD OrderKeyAdd(
uOrder,
oFSIndex,
uKeyValue
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public virtual Usual OrderKeyAdd(
Usual uOrder = default,
Usual oFSIndex = default,
Usual uKeyValue = default
)
Request Example
View SourceParameters
- uOrder (Optional)
- Type: Usual
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 value will raise a runtime error.
- oFSIndex (Optional)
- Type: Usual
A string or filespec object that specifies 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 oFSIndex is not open by the current process, a runtime error is raised.
- uKeyValue (Optional)
- Type: Usual
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.
Return Value
Type:
Usual
TRUE if successful; otherwise, FALSE.
Remarks
A custom built order is one that is not automatically maintained by the DBFCDX driver. You can determine if an order is custom built using DBServer:OrderInfo(DBOI_CUSTOM, ...). When you create such an order, it is initially empty.
You must manually add and delete keys using DBServer:OrderKeyAdd() and DBServer:OrderKeyDel().
DBServer:OrderKeyAdd() evaluates the key expression (or
uKeyValue, if specified), 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.
Tip |
---|
RDDs may allow you to add several keys for the same record with consecutive calls to DBServer:OrderKeyAdd(). |
DBServer:OrderKeyAdd() will fail if:
- The record pointer is positioned on an invalid record (i.e., at DBServer:EOF)
- The specified order is not custom built
- The specified order does not exist
- No order was specified and there is no controlling order
Tip |
---|
From the standard RDDs only the DBFCDX RDD supports Custom Indexes. This RDD does NOT support the use of the uKeyValue parameter. It always uses the Key Expression to calculate the Key Values to insert.
|
Examples
This example creates a custom index and adds every fiftieth record to it:
1oDBCust := Customer{}
2
3oDBCust:SetOrderCondition(,,,,,,,,,,,,, TRUE)
4oDBCust:CreateIndex("last", "oDBCust:LastName")
5
6FOR n := 1 UPTO oDBCust:RecCount STEP 50
7oDBCust:GoTo(n)
8oDBCust:OrderKeyAdd()
9NEXT
See Also