VoDbSort Function | |
Copy records to a database file in sorted order.
Namespace:
XSharp.RT
Assembly:
XSharp.RT (in XSharp.RT.dll) Version: 2.21
Syntax FUNCTION VoDbSort(
nDest AS DWORD,
fldNames AS _FieldNames,
cbForCondition AS USUAL,
cbWhileCondition AS USUAL,
nNext AS USUAL,
nRecord AS USUAL,
lRest AS LOGIC,
fnSortNames AS _FieldNames
) AS LOGIC
public static bool VoDbSort(
uint nDest,
_FieldNames fldNames,
Usual cbForCondition,
Usual cbWhileCondition,
Usual nNext,
Usual nRecord,
bool lRest,
_FieldNames fnSortNames
)
Request Example
View SourceParameters
- nDest
- Type: DWord
- fldNames
- Type: _FieldNames
List of field names to copy - cbForCondition
- Type: Usual
A code block that defines a condition that each record within the scope must meet in order to be processed. - cbWhileCondition
- Type: Usual
A code block that defines another condition that each record must meet in order
to be processed.
As soon as a record is encountered that causes the condition to fail, the operation
terminates.
If no scope is specified, cbWhileCondition changes the default scope to lRest.
You define the scope using one of these three, mutually exclusive arguments.
The default is all records.
- nNext
- Type: Usual
The number of records to process, starting at nRecord.
Specify 0 to ignore this argument.
- nRecord
- Type: Usual
A single record number to process. Specify 0 to ignore this argument. - lRest
- Type: Logic
TRUE processes only records from nStart to the end of the file.
FALSE processes all records.
- fnSortNames
- Type: _FieldNames
List of field names to sort on
Return Value
Type:
Logic
TRUE if successful; otherwise, FALSE.
Remarks Tip |
---|
The nNext, nRecord, and lRest arguments are mutually exclusive. You should not pass all three of them.
And if you pass the cbWhile argument then this also controls the scope behavior.
|
DBSort() copies records from the current work area to another database file in sorted order.
X# sorts character fields in accordance with the ASCII value of each character
within the string.
Numeric fields are sorted in numeric order, date fields are sorted chronologically,
and logical fields are sorted with TRUE as the high value.
Memo fields cannot be sorted.
DBSort() performs as much of its operation as possible in memory, then it spools
to a uniquely named temporary disk file.
This temporary file can be as large as the size of the source database file.
Note also that DBSort() uses up three file handles: the source database file,
the target database file, and the temporary file.
If the database is opened in shared mode, you must lock the file to be sorted with FLock().
DBSort() is the functional equivalent of the SORT command.
Tip |
---|
Deleted Source Records:
If SetDeleted() is TRUE, VODBSort() copies deleted records to the target database file;
however, the deleted records do not retain their deleted status.
No record is marked for deletion in the target file regardless of its status in the source file.
If SetDeleted() is FALSE, deleted records are not copied to the target database file.
Similarly, filtered records are ignored during a sort and are not included in the target
file.
|
Examples
The following example sorts a database on two fields (ignoring case) and uses
it as the current file:
1IF DBSort("sortdb.dbf", {"Last/C", "First/C"})
2 DBCloseArea()
3 USE sortdb NEW
4ENDIF
See Also