DbServer.FieldInfo 方法 | |
返回并可选更改有关字段的信息。
命名空间:
VO
程序集:
VORDDClasses (在 VORDDClasses.dll 中) 版本:2.22 GA
语法 VIRTUAL METHOD FieldInfo(
kFieldInfoType,
uField,
uFieldVal
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public virtual __Usual FieldInfo(
__Usual kFieldInfoType = default,
__Usual uField = default,
__Usual uFieldVal = default
)
查看代码参数
- 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() 检索字段信息:
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
下一个示例说明了使用第三个参数为字段名称分配别名:
1METHOD Start() CLASS App
2LOCAL oDBDate AS DBServer
3oDBDate := DateBook{}
4oDBDate:FieldInfo(DBS_ALIAS,;
5oDBDate:FieldPos("Name"),;
6"NewName")
7? Name
8? NewName
9...
参见