本主题提供有关 COLUMNS 行集和 PROCEDURE_PARAMETERS 行集的信息。 此信息与 SQL Server 2008 中引入的 OLE DB 日期和时间增强功能相关。
COLUMNS 行集
对于日期/时间类型将返回以下列值:
| 列名称 | 数据类型 | COLUMN_FLAGS、DBCOLUMFLAGS_SS_ISVARIABLESCALE | DATETIME_PRECISION |
|---|---|---|---|
| 日期 | DBTYPE_DBDATE(数据库日期类型) | 清晰 | 0 |
| 时间 | DBTYPE_DBTIME2 | 设置 | 0..7 |
| smalldatetime | DBTYPE_DBTIMESTAMP | 清晰 | 0 |
| datetime | DBTYPE_DBTIMESTAMP | 清晰 | 3 |
| datetime2 | DBTYPE_DBTIMESTAMP | 设置 | 0..7 |
| 日期时间偏移量 | DBTYPE_DBTIMESTAMPOFFSET | 设置 | 0..7 |
在 COLUMN_FLAGS 中,对于日期/时间类型,DBCOLUMNFLAGS_ISFIXEDLENGTH 始终为 True,并且以下标记始终为 False:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER
DBCOLUMNFLAGS_MAYDEFER
其余的标记(DBCOLUMNFLAGS_ISNULLABLE、DBCOLUMNFLAGS_MAYBENULL、DBCOLUMNFLAGS_WRITE 和 DBCOLUMNFLAGS_WRITEUNKNOWN)可能被设置,具体取决于列的定义方式。
在 COLUMN_FLAGS 中提供了新标记 DBCOLUMNFLAGS_SS_ISVARIABLESCALE,以允许应用程序确定 DATA_TYPE 为 DBTYPE_DBTIMESTAMP 的那些列的服务器类型。 为标识服务器类型还必须使用 DATETIME_PRECISION。
仅当连接到 SQL Server 2008 或更高版本服务器时,DBCOLUMNFLAGS_SS_ISVARIABLESCALE才有效。 连接到下级服务器时,未定义 DBCOLUMNFLAGS_SS_ISFIXEDSCALE。
PROCEDURE_PARAMETERS 行集
DATA_TYPE 包含与 COLUMNS 架构行集相同的值,并且 TYPE_NAME 包含服务器类型。
已添加新列 SS_DATETIME_PRECISION,以便返回类似于 COLUMNS 行集的 DATETIME_PRECISION 列中的类型精度。
PROVIDER_TYPES 行集
对于日期/时间类型将返回以下行:
| 类型 -> 列 |
日期 | 时间 | smalldatetime | datetime | datetime2 | 日期时间偏移量 |
|---|---|---|---|---|---|---|
| TYPE_NAME | 日期 | 时间 | smalldatetime | datetime | datetime2 | 日期时间偏移量 |
| 数据类型 | DBTYPE_DBDATE(数据库日期类型) | DBTYPE_DBTIME2 | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMPOFFSET |
| COLUMN_SIZE | 10 | 16 | 16 | 23 | 二十七 | 34 |
| LITERAL_PREFIX | “ | “ | “ | “ | “ | “ |
| LITERAL_SUFFIX | “ | “ | “ | “ | “ | “ |
| CREATE_PARAMS | Null | 规模 | Null | Null | 规模 | 规模 |
| IS_NULLABLE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
| CASE_SENSITIVE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| 可搜索 | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE |
| UNSIGNED_ATTRIBUTE | Null | Null | Null | Null | Null | Null |
| FIXED_PREC_SCALE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| AUTO_UNIQUE_VALUE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| LOCAL_TYPE_NAME | 日期 | 时间 | smalldatetime | datetime | datetime2 | 日期时间偏移量 |
| MINIMUM_SCALE | Null | 0 | Null | Null | 0 | 0 |
| MAXIMUM_SCALE | Null | 7 | Null | Null | 7 | 7 |
| GUID | Null | Null | Null | Null | Null | Null |
| TYPELIB | Null | Null | Null | Null | Null | Null |
| 版本 | Null | Null | Null | Null | Null | Null |
| IS_LONG | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| BEST_MATCH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE,除非符合以下某项条件: - 客户端是否已连接到下层服务器。 - 数据类型兼容性连接属性指定等于 80 的兼容级别。 |
VARIANT_TRUE,除非符合以下某项条件: - 客户端是否已连接到下层服务器。 - 数据类型兼容性连接属性指定等于 80 的兼容级别。 |
VARIANT_TRUE |
| IS_FIXEDLENGTH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
OLE DB 仅定义数字和小数类型的MINIMUM_SCALE和MAXIMUM_SCALE,因此 SQL Server Native Client 将这些列用于时间、datetime2 和 datetimeoffset 是非标准的。