本主題提供有關 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 |
| 日期時間 | DBTYPE_DBTIMESTAMP | 晴 | 3 |
| datetime2 | DBTYPE_DBTIMESTAMP | 設定 | 0..7 |
| datetimeoffset(日期時間偏移量) | DBTYPE_DBTIMESTAMPOFFSET | 設定 | 0..7 |
在 COLUMN_FLAGS 中,DBCOLUMNFLAGS_ISFIXEDLENGTH 對 date/time 類型永遠為 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 也必須用來識別伺服器類型。
DBCOLUMNFLAGS_SS_ISVARIABLESCALE只有在連線到 SQL Server 2008 或更新版本伺服器時才有效。 連接到下層伺服器時,不會定義 DBCOLUMNFLAGS_SS_ISFIXEDSCALE。
PROCEDURE_PARAMETERS 資料列集
DATA_TYPE 包含與 COLUMNS 結構描述資料列集相同的值,而 TYPE_NAME 包含伺服器類型。
已經加入新的資料行 SS_DATETIME_PRECISION,以傳回與 DATETIME_PRECISION 資料行相同的類型,類似 COLUMNS 資料列集。
PROVIDER_TYPES 資料列集
系統會傳回日期/時間類型的下列資料列:
| 鍵入 -> 資料行 |
日期 | 時間 | smalldatetime | 日期時間 | datetime2 | datetimeoffset(日期時間偏移量) |
|---|---|---|---|---|---|---|
| 類型名稱 | 日期 | 時間 | smalldatetime | 日期時間 | datetime2 | datetimeoffset(日期時間偏移量) |
| 資料類型 | 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 | 零 | 規模 | 零 | 零 | 規模 | 規模 |
| 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 | 零 | 零 | 零 | 零 | 零 | 零 |
| 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 | 日期時間 | datetime2 | datetimeoffset(日期時間偏移量) |
| MINIMUM_SCALE | 零 | 0 | 零 | 零 | 0 | 0 |
| MAXIMUM_SCALE | 零 | 7 | 零 | 零 | 7 | 7 |
| GUID(國際唯一識別碼) | 零 | 零 | 零 | 零 | 零 | 零 |
| TYPELIB | 零 | 零 | 零 | 零 | 零 | 零 |
| 版本 | 零 | 零 | 零 | 零 | 零 | 零 |
| IS_LONG | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| BEST_MATCH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | 除非下列其中之一是 true,否則為 VARIANT_TRUE: - 用戶端是否已連線到下層伺服器。 - 數據類型相容性連接屬性會指定等於 80 的相容性層級。 |
除非下列其中之一是 true,否則為 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 針對 time、datetime2 和 datetimeoffset 使用這些數據行不是標準。