点击或拖拽改变大小

DbServer.OrderInfo 方法

X#
返回并可选地更改有关 order 和索引文件的信息。

命名空间:  VO
程序集:  VORDDClasses (在 VORDDClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD OrderInfo(
	kOrderInfoType,
	oFSIndex,
	uOrder,
	uOrdVal
) AS USUAL CLIPPER
查看代码

参数

kOrderInfoType (Optional)
类型:__Usual
指定信息类型。常量列在下面。请注意,并非所有常量都支持所有 RDD。 这应该是备注部分中列出的 DBOI_ 常量之一。
oFSIndex (Optional)
类型:__Usual
一个字符串或文件规范对象,指定索引文件的名称,包括可选的驱动器和目录(不应指定扩展名)。 使用此参数和 cOrder 消除当不同索引文件中有两个或多个同名order时的歧义。 如果当前进程未打开 oFSIndex,则会引发运行时错误。
uOrder (Optional)
类型:__Usual
您想要获取信息的 order 名称或表示其在 order 列表中的位置的数字(对于单序索引文件,order 名称是八个字母的索引文件名)。 使用 order 名称是首选方法,因为使用多个 order 文件时,位置可能难以确定。无效值将被忽略。 如果未指定索引文件或 order,则假定为控制 order。
uOrdVal (Optional)
类型:__Usual
如果指定,此参数用于更改设置的值。数据类型(以及是否可以指定 uOrdVal), 取决于 kInfoType 常量,并在下面的常量部分中记录。

返回值

类型:__Usual
如果未指定 uNewSetting,DBServer:OrderInfo() 返回当前设置。 如果指定了 uNewSetting,则返回先前的设置。
备注
Constant描述
DBOI_CONDITION返回指定顺序的条件作为字符串。
DBOI_CUSTOM 返回并可选地设置指定顺序是否为自定义构建(对于支持自定义构建顺序的 RDD)。请注意, 虽然您可以通过在 uNewSetting 参数中指定 TRUE 来为标准顺序打开自定义构建标志, 但您不能将自定义构建顺序转换为标准顺序。 指定 FALSE 为 uNewSetting 的值与不指定参数一样—在更改参数之前返回当前设置。
DBOI_EXPRESSION返回指定顺序的键表达式作为字符串。
DBOI_FILEHANDLE返回指定索引文件的句柄作为 IntPtr。
DBOI_FILESTREAM返回指定索引文件的文件流。
DBOI_FULLPATH返回指定索引文件的完整路径作为字符串。
DBOI_HPLOCKING返回一个逻辑标志,指示指定索引文件是否使用高性能索引锁定模式(参见 IndexHPLock() 函数)。
DBOI_INDEXEXT返回默认的索引文件扩展名作为字符串。
DBOI_INDEXNAME返回指定索引文件的名称作为字符串。
DBOI_ISCOND返回一个逻辑标志,确定指定顺序是否使用 for 条件定义。
DBOI_ISDESC 返回一个逻辑标志,确定指定顺序是否为降序。对于支持在运行时动态设置降序标志的驱动程序,可以使用逻辑值指定新值,使用 DBServer:OrderInfo(DBOI_ISDESC, [<oFSIndexFile> | <cIndexFile>], [<cOrder> | <nPosition>], <lNewSetting>)。在更改参数之前返回当前设置。
DBOI_KEYCOUNT返回指定顺序的键数。
DBOI_KEYDEC返回指定顺序的键中的小数位数。
DBOI_KEYSINCLUDED返回指定顺序中包含的键的数量。这主要用于条件顺序。它可以在状态显示过程中使用(使用 INDEX 命令的 EVAL 子句)。
DBOI_KEYSIZE返回指定顺序的键的大小作为数字。
DBOI_KEYTYPE返回指定顺序的键的数据类型作为字符串。
DBOI_KEYVAL返回指定顺序中当前记录的键值。
DBOI_LOCKOFFSET返回指定索引文件的锁定偏移量(参见 NewIndexLock() 函数)作为数值。
DBOI_NAME返回指定顺序的名称作为字符串。
DBOI_NUMBER返回指定顺序在顺序列表中的数值位置。
DBOI_ORDERCOUNT返回指定索引文件中定义的顺序数。
DBOI_POSITION返回指定顺序中当前记录的逻辑记录号。
DBOI_RECNO返回指定顺序中当前记录的物理记录号。
DBOI_SCOPEBOTTOMs返回指定顺序的作用域的底部边界。
DBOI_SCOPETOP返回指定顺序的作用域的顶部边界。
DBOI_SETCODEBLOCK返回指定顺序的键作为代码块。
DBOI_UNIQUE返回一个逻辑标志,指示指定顺序是否具有唯一属性。
DBOI_USER用于自定义的开始。
提示 提示:
DBOI_USER 是一个常量,返回第三方 RDD 开发人员可以用于自定义的最小值。 小于 DBOI_USER 的值保留给 X# 开发。
示例
此示例使用 DBOI_NAME 保存当前控制 order。更改为新控制 order后,它使用保存的值恢复原始 order:
X#
1oDBCust := Customer{}
2oDBCust:SetIndex("name")
3oDBCust:SetIndex("serial")
4cOrder := oDBCust:OrderInfo(DBOI_NAME) // name
5oDBCust:SetOrder("serial")
6? oDBCust:OrderInfo(DBOI_NAME) // serial
7oDBCust:SetOrder(cOrder)
8? oDBCust:OrderInfo(DBOI_NAME) // name
此示例返回两个不同数据服务的默认索引文件扩展名(使用 DBOI_INDEXEXT):
X#
1oDBSales := Sales{}
2oDBCust := Customer{}
3? oDBSales:OrderInfo(DBOI_INDEXEXT) // .CDX
4? oDBCust:OrderInfo(DBOI_INDEXEXT) // .NTX
在此示例中,DBServer:OrderInfo(DBOI_INDEXEXT) 检查 CUSTOMER 索引文件的存在,而与数据服务关联的 RDD 无关:
X#
1oDBCust := Customer{}
2IF !File("customer" + oDBCust:OrderInfo(DBOI_INDEXEXT))
3oDBCust:CreateIndex("customer", "oDBCust:CustName")
4ENDIF
此示例从同一索引文件中访问多个order的键表达式:
X#
1oDBCust := Customer{}
2oDBCust:SetOrder("serial")
3? oDBCust:OrderInfo(DBOI_EXPRESSION,, "name")
4// 结果:名称order的键表达式
5? oDBCust:OrderInfo(DBOI_EXPRESSION,, "serial")
6// 结果:序列order的键表达式
在此示例中,ALL_CUST.MDX 包含三个 order,分别为 CUACCT、CUNAME、CUZIP。使用 DBOI_INDEXNAME 常量显示使用其 order 之一的索引文件的名称:
X#
1oDBCust := Customer{}
2oDBCust:SetIndex("all_cust")
3? oDBCust:OrderInfo(DBOI_INDEXNAME,, "cuname")
4// 返回:all_cust
以下示例在 order 列表中搜索 CUNAME:
X#
1oDBCust := Customer{}
2oDBCust:SetIndex("cuacct")
3oDBCust:SetIndex("cuname")
4oDBCust:SetIndex("cuzip")
5? oDBCust:OrderInfo(DBOI_NUMBER,, "cuname") // 2
此示例从 order 中检索“for条件”:
X#
1oDBCust := Customer{}
2oDBCust:SetOrderCondition("oDBCust:Acct > 'AZZZZZ'")
3oDBCust:CreateIndex("customer", "oDBCust:Acct")
4oDBCust:OrderInfo(DBOI_CONDITION,, "customer")
5// 返回:oDBCust:Acct > 'AZZZZZ'
参见