点击或拖拽改变大小

Functions.DbSortFox 方法

X#
将记录按排序顺序复制到数据库文件中。

命名空间:  XSharp.VFP
程序集:  XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法
 FUNCTION DbSortFox(
	cTargetFile,
	acFields,
	cbForCondition,
	cbWhileCondition,
	nNext,
	nRecord,
	lRest,
	lNoOpt,
	lDesc,
	acOutPutFields
) AS LOGIC CLIPPER
查看代码

参数

cTargetFile (Optional)
类型:__Usual
要写入排序记录的目标数据库文件名,包括可选的驱动器、目录和扩展名。有关文件搜索和创建规则,请参见 SetDefault() 和 SetPath()。
数据库文件的默认扩展名由 RDD 确定。
如果 cTargetFile 不存在,将创建它。
如果它存在,此函数将尝试以独占模式打开文件,如果成功,文件将被覆盖,不会发出警告或错误。
如果由于另一个进程正在使用该文件等原因而被拒绝访问,NetErr() 将被设置为 TRUE。
acFields (Optional)
类型:__Usual
排序键,指定为字段名称数组。您可以在字段名称后面选择性地添加 /A(按字典顺序排序),/C(忽略大小写)或 /D(按降序排序)。默认设置为 /A。
cbForCondition (Optional)
类型:__Usual
定义范围内每条记录必须满足的条件的代码块,以便进行处理。
cbWhileCondition (Optional)
类型:__Usual
定义每条记录必须满足的另一个条件的代码块,以便进行处理。 一旦遇到导致条件失败的记录,操作就会终止。
如果未指定范围,cbWhileCondition 会将默认范围更改为 lRest
您可以使用这三个互斥参数之一来定义范围。
默认是所有记录。
nNext (Optional)
类型:__Usual
要处理的记录数,从 nRecord 开始。 指定 0 以忽略此参数。
nRecord (Optional)
类型:__Usual
要处理的单个记录号。指定 0 以忽略此参数。
lRest (Optional)
类型:__Usual
TRUE 仅处理从 nStart 到文件末尾的记录。 FALSE 处理所有记录。
lNoOpt (Optional)
类型:__Usual
禁用(Rushmore)优化(尚不支持)。禁用(Rushmore)优化(尚不支持)。
lDesc (Optional)
类型:__Usual
默认排序顺序是否为降序
acOutPutFields (Optional)
类型:__Usual
要复制到 cTargetFile 的字段列表。
默认为所有字段

返回值

类型:Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注
提示 提示:
nNextnRecordlRest 参数是互斥的。您不应同时传递这三个参数。 如果您传递 cbWhile 参数,那么它也会控制范围行为。
DBSort() 将当前工作区的记录按排序顺序复制到另一个数据库文件中。 X# 根据字符串中每个字符的 ASCII 值对字符字段进行排序。 数字字段按数字顺序排序,日期字段按时间顺序排序, 逻辑字段排序时 TRUE 为高值。 备注字段不能排序。 DBSort() 尽可能多地在内存中执行操作,然后将结果溢出 到一个唯一命名的临时磁盘文件中。
这个临时文件可能与源数据库文件一样大。 还要注意,DBSort() 会使用三个文件句柄:源数据库文件、 目标数据库文件和临时文件。 如果数据库以共享模式打开,您必须使用 FLock() 锁定要排序的文件。 DBSort() 在功能上等同于 SORT 命令。
提示 提示:
已删除的源记录:
如果 SetDeleted() 为 TRUE,VODBSort() 会将已删除的记录复制到目标数据库文件中; 但是,这些已删除的记录不会保留其删除状态。 无论源文件中的状态如何,目标文件中的记录都不会被标记为删除。
如果 SetDeleted() 为 FALSE,已删除的记录不会被复制到目标数据库文件中。 同样,在排序过程中会忽略经过过滤的记录,它们不会包含在目标 文件中。
示例
以下示例按两个字段(忽略大小写)对数据库进行排序,并将其用作 当前文件:
X#
1IF DBSort("sortdb.dbf", {"Last/C", "First/C"})
2    DBCloseArea()
3    USE sortdb NEW
4ENDIF
参见