DBSCHEMA_PROVIDER_TYPES 行集
标识数据访问接口支持的(基本)数据类型。
行集列
DBSCHEMA_PROVIDER_TYPES 行集包含以下列。
列名 |
类型指示符 |
长度 |
说明 |
---|---|---|---|
TYPE_NAME |
DBTYPE_WSTR |
特定于访问接口的数据类型名称。 |
|
DATA_TYPE |
DBTYPE_UI2 |
数据类型的指示符。 |
|
COLUMN_SIZE |
DBTYPE_UI4 |
非数值列的长度或以下参数,该参数或者是最大值或者是访问接口为此类型定义的长度。 对于字符数据,此为最大值或定义长度(以字符为单位)。 对于 DateTime 数据类型,本列为字符串表示形式的长度(假定精度允许的最大值为秒的小数形式)。 如果数据类型为数值,则此为数据类型最大精度的上限。 |
|
LITERAL_PREFIX |
DBTYPE_WSTR |
用于在文本命令中作为此类型文字的前缀的一个或多个字符。 |
|
LITERAL_SUFFIX |
DBTYPE_WSTR |
用于在文本命令中作为此类型文字的后缀的一个或多个字符。 |
|
CREATE_PARAMS |
DBTYPE_WSTR |
创建此数据类型的列时,由使用者指定的创建参数。 例如,SQL 数据类型 DECIMAL 需要精度和小数位数。 在这种情况下,创建参数可能是字符串“precision,scale”。 在创建精度为 10、小数位数为 2 的 DECIMAL 列的文本命令中,TYPE_NAME 列的值可能是 DECIMAL() 且完整的类型规范应为 DECIMAL(10,2)。 创建参数显示为逗号分隔的值列表,列表中的值按提供顺序排列,列表两边不带括号。 如果创建参数是长度、最大长度、精度、小数位数、种子或增量,则分别使用“length”、“max length”、“precision”、“scale”、“seed”或“increment”。 如果创建参数是其他某值,则访问接口将确定要使用什么文本来描述创建参数。 如果数据类型需要创建参数,则“()”通常会显示在类型名称中。 这用于指示插入创建参数的位置。 如果类型名称不包括“()”,则将用括号括上创建参数并将其追加到数据类型名称中。 |
|
IS_NULLABLE |
DBTYPE_BOOL |
指示数据类型是否可以为 Null 的布尔值。 VARIANT_TRUE 指示数据类型可以为 Null。 VARIANT_FALSE 指示数据类型不可为 Null。 NULL 指示不知道数据类型是否可以为 Null。 |
|
CASE_SENSITIVE |
DBTYPE_BOOL |
指示数据类型是否为字符类型及区分大小写的布尔值。 VARIANT_TRUE 指示数据类型为字符类型且区分大小写。 VARIANT_FALSE 指示数据类型不是字符类型或者不区分大小写。 |
|
SEARCHABLE |
DBTYPE_UI4 |
一个整数,用于指示当访问接口支持 ICommandText 时可以在搜索中如何使用数据类型;否则为 NULL。 此列可以具有下列值:
|
|
UNSIGNED_ATTRIBUTE |
DBTYPE_BOOL |
指示数据类型是否无符号的布尔值。 VARIANT_TRUE 指示数据类型无符号。 VARIANT_FALSE 指示数据类型有符号。 NULL 指示这不适用于数据类型。 |
|
FIXED_PREC_SCALE |
DBTYPE_BOOL |
指示数据类型是否具有固定精度和小数位数的布尔值。 VARIANT_TRUE 指示数据类型具有固定精度和小数位数。 VARIANT_FALSE 指示数据类型不具有固定精度和小数位数。 |
|
AUTO_UNIQUE_VALUE |
DBTYPE_BOOL |
指示数据类型是否自动递增的布尔值。 VARIANT_TRUE 指示该类型的值可以自动递增。 VARIANT_FALSE 指示该类型的值不能自动递增。 如果该值是 VARIANT_TRUE,则该类型的列是否始终自动递增取决于访问接口的 DBPROP_COL_AUTOINCREMENT 列属性。 如果 DBPROP_COL_AUTOINCREMENT 属性是可读/写属性,则该类型的列是否自动递增取决于 DBPROP_COL_AUTOINCREMENT 属性的设置。 如果 DBPROP_COL_AUTOINCREMENT 是只读属性,则该类型的所有列都自动递增或都不自动递增。 |
|
LOCAL_TYPE_NAME |
DBTYPE_WSTR |
TYPE_NAME 的本地化版本。 如果数据访问接口不支持本地化名称,则返回 NULL。 |
|
MINIMUM_SCALE |
DBTYPE_I2 |
如果类型指示符为 DBTYPE_VARNUMERIC、DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,则为小数点右边允许的最小位数。 否则为 NULL。 |
|
MAXIMUM_SCALE |
DBTYPE_I2 |
如果类型指示符为 DBTYPE_VARNUMERIC、DBTYPE_DECIMAL 或 DBTYPE_NUMERIC,则为小数点右边允许的最大位数;否则为 NULL。 |
|
GUID |
DBTYPE_GUID |
(以备将来使用)如果相应类型在类型库中进行了说明,则为该类型的 GUID。 否则为 NULL。 |
|
TYPELIB |
DBTYPE_WSTR |
(以备将来使用)如果类型在类型库中进行了说明,则为包含该类型说明的类型库。 否则为 NULL。 |
|
VERSION |
DBTYPE_WSTR |
(以备将来使用)类型定义的版本。 访问接口可能希望控制类型定义的版本。 不同的访问接口可能使用不同的版本控制方案,例如时间戳或数字(整数或浮点数)。 如果不支持,则为 NULL。 |
|
IS_LONG |
DBTYPE_BOOL |
一个布尔值,指示数据类型是否是二进制大型对象块 (BLOB) 并具有非常长的数据。 VARIANT_TRUE 指示数据类型是包含非常长的数据的 BLOB;非常长数据的定义特定于访问接口。 VARIANT_FALSE 指示数据类型是不包含非常长的数据的 BLOB 或者不是 BLOB。 该值确定由 IColumnsInfo 中的 GetColumnInfo 和 ICommandWithParameters 中的 GetParameterInfo 返回的 DBCOLUMNFLAGS_ISLONG 标志的设置。 |
|
BEST_MATCH |
DBTYPE_BOOL |
指示数据类型是否是最佳匹配的布尔值。 VARIANT_TRUE 指示相应数据类型是数据存储区中所有数据类型和由 DATA_TYPE 列中的值指示的 OLE DB 数据类型之间的最佳匹配。 VARIANT_FALSE 指示相应数据类型不是最佳匹配。 对于 DATA_TYPE 列的值相同的每个行集,只在一个行中将 BEST_MATCH 列设置为 VARIANT_TRUE。 |
|
IS_FIXEDLENGTH |
DBTYPE_BOOL |
指示列的长度是否固定的布尔值。 VARIANT_TRUE 指示由数据定义语言 (DDL) 创建的此类型的列的长度将是固定的。 VARIANT_FALSE 指示由 DDL 创建的此类型的列的长度将是可变的。 如果此字段为 NULL,则不知道访问接口将会使用固定长度列还是可变长度列映射此字段。 |
行集按 DATA_TYPE 排序。
限制列
可针对下表中列出的列限制 DBSCHEMA_PROVIDER_TYPES 行集。
列名 |
类型指示符 |
限制状态 |
---|---|---|
DATA_TYPE |
DBTYPE_UI2 |
|
BEST_MATCH |
DBTYPE_BOOL |