このトピックでは、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 |
| datetimeoffset (デイトタイムオフセット) | DBTYPE_DBTIMESTAMPOFFSET | オン | 0..7 |
COLUMN_FLAG では、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 も使用する必要があります。
DBCOLUMNFLAGS_SS_ISVARIABLESCALEは、SQL Server 2008 以降のサーバーに接続されている場合にのみ有効です。 下位レベルのサーバーに接続されている場合、DBCOLUMNFLAGS_SS_ISFIXEDSCALE は未定義となります。
PROCEDURE_PARAMETERS 行セット
DATA_TYPE には COLUMNS スキーマ行セットと同じ値が格納され、TYPE_NAME にはサーバーの種類が格納されます。
COLUMNS 行セットと同様に、新しい列として SS_DATETIME_PRECISION が追加されました。この列は、DATETIME_PRECISION 列のように型の有効桁数を返します。
PROVIDER_TYPES 行セット
日付/時刻型に対して返される行を次に示します。
| 型 -> コラム |
日付 | 時間 | smalldatetime(スモールデイトタイム) | datetime | datetime2 | datetimeoffset (デイトタイムオフセット) |
|---|---|---|---|---|---|---|
| TYPE_NAME | 日付 | 時間 | smalldatetime(スモールデイトタイム) | datetime | 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(スモールデイトタイム) | datetime | 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 | VARIANT_TRUE (ただし、次のいずれかが当てはまる場合を除く) - クライアントが下位レベルのサーバーに接続されているか。 - データ型互換性接続プロパティは、80 に等しい互換性レベルを指定します。 |
VARIANT_TRUE (ただし、次のいずれかが当てはまる場合を除く) - クライアントが下位レベルのサーバーに接続されているか。 - データ型互換性接続プロパティは、80 に等しい互換性レベルを指定します。 |
VARIANT_TRUE |
| IS_FIXEDLENGTH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
OLE DB では、数値型と 10 進数型のMINIMUM_SCALEとMAXIMUM_SCALEのみが定義されているため、SQL Server Native Client では、時刻、datetime2、datetimeoffset に対してこれらの列を使用することは標準ではありません。