点击或拖拽改变大小

DbServer.FieldInfo 方法

X#
返回并可选更改有关字段的信息。

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VORDDClasses (在 XSharp.VORDDClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD FieldInfo(
	kFieldInfoType,
	uField,
	uFieldVal
) AS USUAL CLIPPER
查看代码

参数

kFieldInfoType (Optional)
类型:__Usual
指定信息类型。常量在下面的备注部分中描述。请注意,并非所有常量都支持所有 RDD。
uField (Optional)
类型:__Usual
表示字段在数据库文件结构中的位置的名称、编号或符号,或指向 BLOB 的数字指针。 仅某些设计用于与 BLOB 字段一起使用的 kFieldInfoType 常量(在下面的常量部分中均有说明)允许使用指针指定字段; 所有其他常量都要求按位置指定字段。
uFieldVal (Optional)
类型:__Usual
如果指定,此参数用于更改设置的值。数据类型(以及是否可以指定 uNewSetting), 取决于 kInfoType 常量,并在下面的常量部分中记录。

返回值

类型:__Usual
如果未指定 uNewSetting,DBServer:FieldInfo() 返回当前设置。 如果指定了 uNewSetting,则返回先前的设置。
备注
常量描述
DBS_ALIAS 返回并可选地更改一个字段可以被引用的备用名称(或别名)(默认情况下,与 DBS_NAME 相同)。 使用 uNewSetting 参数,您可以指定一个字符串,随后可以使用该字符串来访问指定的字段。
DBS_BLOB_DIRECT_LEN 以无符号长整数的形式返回 BLOB 中的数据长度,而不引用特定的备注字段。对于字符串,返回值是字符串的字节长度; 对于数组,它是第一维中的元素数;对于所有其他数据类型,它返回 -1。 使用此常量,您必须使用 BLOBDirectPut()、BLOBDirectImport() 或 FieldInfo(DBS_BLOB_POINTER, ...) 获取的数值指针来指定 BLOB。
DBS_BLOB_DIRECT_TYPE 用于确定 BLOB 数据类型,而不引用特定的备注字段。使用 DBS_BLOB_DIRECT_TYPE。使用此常量,您必须使用 BLOBDirectPut()、BLOBDirectImport() 或 FieldInfo(DBS_BLOB_POINTER, ...) 获取的数值指针来指定 BLOB。
请参阅 DBS_BLOB_TYPE 以获取可能的返回值的表。
DBS_BLOB_LEN 以无符号长整数的形式返回备注字段中的 BLOB 数据的长度。对于字符串,返回值是字符串的字节长度;对于数组,它是第一维中的元素数;对于所有其他数据类型,它返回 -1。
提示 提示:
使用 DBS_BLOB_LEN 优于检索值并使用 Len() 函数。
DBS_BLOB_POINTER返回与备注字段关联的 BLOB 数据的数值指针。
DBS_BLOB_TYPE 与在 .DBT 文件中维护的备注字段不同,BLOB 文件允许您在备注字段中存储许多不同类型的数据。然而,用于确定数据类型的标准函数,如 ValType(),简单地将 BLOB 字段视为常规备注字段。要确定备注字段中存储的实际 BLOB 数据的类型,使用 DBS_BLOB_TYPE。
返回值的数据类型是字符串,可以使用此表进行解释:
返回值含义
?空(未初始化的字段)
A数组
C字符串
D日期
E错误
L逻辑
N数值
U未定义(NIL 已存储)
DBS_DEC返回字段的小数位数。
DBS_LEN返回字段的长度。
DBS_NAME返回字段的名称。
DBS_PROPERTIES返回字段定义的属性数。
DBS_TYPE返回字段的数据类型。
DBS_USER用户定义值的开始。
提示 提示:
DBS_USER 是一个常量,返回第三方 RDD 开发人员可以用于自定义的最小值。 小于 DBS_USER 的值保留给 X# 开发。
DBServer:FieldInfo() 检索有关字段(列)状态的信息。 可用的字段信息由 RDD 定义。在 DBF 模型中,这仅限于存储在 DBF 文件结构中的信息(即名称、长度、小数位数和数据类型)以及可以在运行时更改的字段别名。 为了支持其他数据库模型(例如基于字典的数据库)的 RDD,这些模型存储有关每个字段或列的更多信息, X# RDD API 已得到增强。DBServer:FieldInfo() 方法设计为允许由第三方 RDD 开发人员定义的其他 kInfoType 值。
示例
以下示例使用 DBServer:FieldInfo() 检索字段信息:
X#
 1METHOD DBOutStruct() CLASS Customer
 2LOCAL aStruct AS ARRAY
 3LOCAL wFcount AS DWORD
 4LOCAL i AS DWORD
 5
 6aStruct := {}
 7wFcount := FCount()
 8
 9FOR i := 1 UPTO wFcount
10AAdd(aStruct,;
11{SELF:FieldInfo(DBS_NAME, i),;
12SELF:FieldInfo(DBS_TYPE, i),;
13SELF:FieldInfo(DBS_LEN, i),;
14SELF:FieldInfo(DBS_DEC, i)})
15NEXT
16
17RETURN aStruct
下一个示例说明了使用第三个参数为字段名称分配别名:
X#
1METHOD Start() CLASS App
2LOCAL oDBDate AS DBServer
3oDBDate := DateBook{}
4oDBDate:FieldInfo(DBS_ALIAS,;
5oDBDate:FieldPos("Name"),;
6"NewName")
7? Name // 显示名称字段
8? NewName // 也显示名称字段
9...
参见