Functions.VoDbSort 方法 | |
将记录按排序顺序复制到数据库文件中。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 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
)
查看代码参数
- nDest
- 类型:UInt32
- fldNames
- 类型:_FieldNames
List of field names to copy - cbForCondition
- 类型:__Usual
定义范围内每条记录必须满足的条件的代码块,以便进行处理。 - cbWhileCondition
- 类型:__Usual
定义每条记录必须满足的另一个条件的代码块,以便进行处理。 一旦遇到导致条件失败的记录,操作就会终止。
如果未指定范围,cbWhileCondition 会将默认范围更改为 lRest。
您可以使用这三个互斥参数之一来定义范围。
默认是所有记录。
- nNext
- 类型:__Usual
要处理的记录数,从 nRecord 开始。 指定 0 以忽略此参数。 - nRecord
- 类型:__Usual
要处理的单个记录号。指定 0 以忽略此参数。 - lRest
- 类型:Boolean
TRUE 仅处理从 nStart 到文件末尾的记录。 FALSE 处理所有记录。 - fnSortNames
- 类型:_FieldNames
List of field names to sort on
返回值
类型:
Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注 提示: |
---|
nNext、nRecord 和 lRest 参数是互斥的。您不应同时传递这三个参数。
如果您传递 cbWhile 参数,那么它也会控制范围行为。
|
DBSort() 将当前工作区的记录按排序顺序复制到另一个数据库文件中。
X# 根据字符串中每个字符的 ASCII 值对字符字段进行排序。
数字字段按数字顺序排序,日期字段按时间顺序排序,
逻辑字段排序时 TRUE 为高值。
备注字段不能排序。
DBSort() 尽可能多地在内存中执行操作,然后将结果溢出
到一个唯一命名的临时磁盘文件中。
这个临时文件可能与源数据库文件一样大。
还要注意,DBSort() 会使用三个文件句柄:源数据库文件、
目标数据库文件和临时文件。
如果数据库以共享模式打开,您必须使用 FLock() 锁定要排序的文件。
DBSort() 在功能上等同于 SORT 命令。
提示: |
---|
已删除的源记录:
如果 SetDeleted() 为 TRUE,VODBSort() 会将已删除的记录复制到目标数据库文件中;
但是,这些已删除的记录不会保留其删除状态。
无论源文件中的状态如何,目标文件中的记录都不会被标记为删除。
如果 SetDeleted() 为 FALSE,已删除的记录不会被复制到目标数据库文件中。
同样,在排序过程中会忽略经过过滤的记录,它们不会包含在目标
文件中。
|
示例
以下示例按两个字段(忽略大小写)对数据库进行排序,并将其用作
当前文件:
1IF DBSort("sortdb.dbf", {"Last/C", "First/C"})
2 DBCloseArea()
3 USE sortdb NEW
4ENDIF
参见