点击或拖拽改变大小

Functions.OrdCreate 方法

X#
在索引文件中创建或替换一个顺序。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION OrdCreate(
	cIndexFile,
	cOrder,
	cKeyValue,
	cbKeyValue,
	lUnique
) AS LOGIC CLIPPER
查看代码

参数

cIndexFile (Optional)
类型:__Usual
目标索引文件的名称,包括可选的驱动器、目录和扩展名。参见 SetDefault() 和 SetPath() 了解文件搜索和创建规则。
默认扩展名由 RDD 确定,可以使用 DBOrderInfo(DBOI_INDEXEXT) 获取。
在支持生产索引的 RDD 中,如果未指定 cIndexFile,则假定使用生产索引文件(即与数据库文件同名的文件)。
如果 cIndexFile 不存在,则创建它。
如果 cIndexFile 存在,INDEX 命令必须首先获得文件的独占使用权。
如果尝试失败(例如,文件被另一个进程打开),NetErr() 将设置为 TRUE。
如果尝试成功,且 RDD 指定索引文件只能包含单个顺序,则文件的当前内容将被新顺序覆盖。
如果 RDD 指定索引文件可以包含多个顺序,则如果 cIndexFile 中不存在该顺序,则添加该顺序;否则替换它。
cOrder (Optional)
类型:__Usual
要创建的顺序的名称。
对于单顺序索引文件,不带扩展名或路径的文件名是默认的顺序名。
对于多顺序索引文件,顺序名是必需的。
cKeyValue (Optional)
类型:__Usual
以字符串形式指定的顺序键表达式。
这是存储在索引文件中的键表达式,用于定位键值和重新创建顺序等目的。
虽然 cKeyValue 是可选的,但强烈建议指定此参数。没有它,顺序将使用 cbKeyValue 正确创建,但键表达式将作为 NULL_STRING 存储在索引文件中,使顺序无法进行后续访问。
cbKeyValue (Optional)
类型:__Usual
以代码块形式指定的顺序键表达式。
此代码块用于初始创建顺序。
如果不提供 cbKeyValue,它将从 cKeyValue 宏编译(例如,{||&cKeyValue})。
键表达式的数据类型和所有其他限制,包括键的长度和键表达式,由 RDD 确定。
lUnique (Optional)
类型:__Usual
TRUE 创建唯一顺序,仅包含具有唯一键值的记录;FALSE 使用数据库文件中的所有记录。
如果省略 lUnique,则使用 SetUnique() 设置。注意,已删除记录的键也包含在索引中,可能会隐藏未删除记录的键。

返回值

类型:Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
DBCreateOrder() 使用当前的 DBSetOrderCondition() 来确定顺序的条件(例如,其范围、for 条件和 while 条件)。 创建(或替换)后,新顺序将添加到工作区的顺序列表中。工作区已关联的其他顺序(包括控制顺序)不受影响。 注意:
虽然此函数设计用于处理单顺序和多顺序索引文件,但您可能会发现使用 DBCreateIndex() 创建单顺序索引文件更容易。
提示 提示:
副作用: DBCreateOrder() 保证创建一个顺序,当成为控制顺序时,将对数据库施加指定的逻辑顺序。
键表达式不一定在任何特定时间、以任何特定方式或在任何特定记录或一系列记录上进行评估。
如果键表达式依赖于数据库文件或工作区外部的信息,其效果是不可预测的。
如果键表达式改变工作区的状态(例如,移动到不同的记录或更改记录的内容),其效果是不可预测的。 键评估: 在评估键表达式之前,相关工作区会自动选为当前工作区;之后会自动恢复先前选择的工作区。
示例
此示例创建顺序 CUACCT 并将其添加到生产索引文件 CUSTOMER 中:
X#
1USE customer VIA "DBFMDX" NEW
2Customer->DBCreateOrder("CuAcct", "Customer", ;
3    "Acct", {|| Customer->Acct})
参见