Functions.DbCreateIndex 方法 | |
创建索引文件并向其添加一个顺序。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION DbCreateIndex(
cIndexFile,
cKeyValue,
cbKeyValue,
lUnique
) AS LOGIC CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static bool DbCreateIndex(
__Usual cIndexFile = default,
__Usual cKeyValue = default,
__Usual cbKeyValue = default,
__Usual lUnique = default
)
查看代码参数
- cIndexFile (Optional)
- 类型:__Usual
目标索引文件的名称,包括可选的驱动器、目录和扩展名。有关文件搜索和创建规则,请参见 SetDefault() 和 SetPath()。
默认扩展名由 RDD 确定,可以使用 DBOrderInfo(DBOI_INDEXEXT) 获取。
在支持生产索引的 RDD 中,如果未指定 cIndexFile,则假定为生产索引文件。
如果 cIndexFile 不存在,则创建它。
如果 cIndexFile 存在,DBCreateIndex() 必须首先获得对文件的独占使用权。
如果成功,文件将被覆盖,不会发出警告或错误。
如果尝试失败(例如,因为文件被另一个进程打开),NetErr() 将被设置为 TRUE。
- cKeyValue (Optional)
- 类型:__Usual
以字符串形式指定的顺序键表达式。
这是存储在索引文件中的键表达式,用于定位键值和重新创建顺序等目的。
虽然 cKeyValue 是可选的,但强烈建议您指定此参数。没有它,顺序将使用 cbKeyValue 正确创建,但键表达式将作为 NULL_STRING 存储在索引文件中,使顺序无法用于后续访问。
- cbKeyValue (Optional)
- 类型:__Usual
以代码块形式指定的顺序键表达式。
此代码块用于初始创建顺序。
如果您不提供 cbKeyValue,它将从 cKeyValue 宏编译(例如,{||&cKeyValue})。
键表达式的数据类型和所有其他限制(包括键的长度和键表达式)由 RDD 确定。
- lUnique (Optional)
- 类型:__Usual
TRUE 通过仅包含具有唯一键值的记录来创建唯一顺序;FALSE 使用数据库文件中的所有记录。
如果省略 lUnique,则使用 SetUnique() 设置。
返回值
类型:
Boolean
如果成功则返回 TRUE;否则返回 FALSE。
备注
默认情况下,此函数为当前选定工作区关联的数据库文件创建索引文件。
可以通过在别名表达式中指定未选定的工作区来使其在该工作区上操作。
DBCreateIndex() 使用当前的 DBSetOrderCondition() 来确定顺序的条件(例如,其范围、for 条件和 while 条件)。
如果工作区中有其他打开的索引文件,它们将被关闭。
创建新索引文件后,使用索引文件名和指定的键向文件添加顺序。
索引文件被打开(与其关联的数据库文件处于相同模式),设置工作区的控制顺序,并将数据库文件定位到第一个逻辑记录。
注意:
如果 RDD 支持每个索引文件有多个顺序,请使用 DBCreateOrder() 向索引文件添加后续顺序。
提示: |
---|
副作用: DBCreateIndex() 保证创建一个顺序,当成为控制顺序时,将对数据库施加指定的逻辑顺序。
键表达式不一定在任何特定时间、通过任何特定方式或在任何特定记录或一系列记录上进行评估。
如果键表达式依赖于数据库文件或工作区外部的信息,效果是不可预测的。
如果键表达式改变工作区的状态(例如,移动到不同的记录或更改记录的内容),效果是不可预测的。
键评估: 在评估键表达式之前,相关工作区会自动选择为当前工作区;之后会自动恢复先前选择的工作区。
|
示例
此示例创建一个索引文件 EMPNAME,以 Name 字段为索引:
1USE employee NEW
2Employee->DBCreateIndex("EmpName", "Name", ;
3 {|| Employee->Name})
参见 引用
DbSetOrderCondition(__Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual, __Usual)