次の方法で共有


Datetime データ型

ODBC 3.x では、日付、時刻、およびタイムスタンプの SQL データ型の識別子が、SQL_DATE、SQL_TIME、およびSQL_TIMESTAMP (ヘッダー ファイル 9、10、および 11) の #define のインスタンスを含む) から、SQL_TYPE_DATE、SQL_TYPE_TIME、およびSQL_TYPE_TIMESTAMP (ヘッダー ファイル 91 の #define のインスタンスを含む) に変更されました。 92、93)、それぞれ。 対応する C 型識別子は、それぞれSQL_C_DATE、SQL_C_TIME、およびSQL_C_TIMESTAMPからSQL_C_TYPE_DATE、SQL_C_TYPE_TIME、およびSQL_C_TYPE_TIMESTAMPに変更され、#defineインスタンスはそれに応じて変更されています。

ODBC 3.x の SQL datetime データ型に対して返される列サイズと 10 進数は、ODBC 2.x で返される有効桁数と小数点以下の桁数と同じです。 これらの値は、SQL_DESC_PRECISION および SQL_DESC_SCALE 記述子フィールドの値とは異なります。 (詳細については、 付録 D: データ型の列サイズ、10 進数、転送オクテット長、および表示サイズ

これらの変更は、SQLDescribeCol、SQLDescribeParam、および SQLColAttributes に影響しますSQLBindColSQLBindParameter、SQLGetData、および SQLColumnsSQLGetTypeInfoSQLProcedureColumnsSQLStatistics、SQLSpecialColumns

ODBC 3.x ドライバーは、SQL_ATTR_ODBC_VERSION環境属性の設定に従って、前の段落に記載されている関数呼び出しを処理します。 SQLColumns、SQLGetTypeInfoSQLProcedureColumnsSQLSpecialColumns、および SQLStatistics の場合、SQL_ATTR_ODBC_VERSIONがSQL_OV_ODBC3に設定されている場合、関数はDATA_TYPE フィールドにSQL_TYPE_DATE、SQL_TYPE_TIME、およびSQL_TYPE_TIMESTAMPを返します。 COLUMN_SIZE列 (SQLColumns、SQLGetTypeInfoSQLProcedureColumns、および SQLSpecialColumns によって返される結果セット内) には、近似数値型のバイナリ精度が含まれています。 SQL_ATTR_ODBC_VERSIONが SQL_OV_ODBC2 に設定されている場合、関数は DATA_TYPE フィールドにSQL_DATE、SQL_TIME、およびSQL_TIMESTAMPを返し、COLUMN_SIZE列には近似数値型の 10 進精度が含まれます。

SQLGetTypeInfo の呼び出しですべてのデータ型が要求されると、関数によって返される結果セットには、ODBC 3.x で定義されているSQL_TYPE_DATE、SQL_TYPE_TIME、およびSQL_TYPE_TIMESTAMPの両方と、ODBC 2.x で定義されているSQL_DATE、SQL_TIME、およびSQL_TIMESTAMPが含まれます。

ODBC 3.x ドライバー マネージャーが日付、時刻、およびタイムスタンプのデータ型のマッピングを実行する方法のため、ODBC 3.x ドライバーは、SQLBindCol と SQLGetData の TargetType 引数または SQLBindParameter の ValueType 引数に入力された日付、時刻、タイムスタンプ C のデータ型に対して 91、92、および 93 の #defines のみを認識する必要があります。 SQLBindParameter の ParameterType 引数または SQLGetTypeInfo の DataType 引数に入力された日付、時刻、およびタイムスタンプの SQL データ型に対して、91、92、および 93 の #defines のみを認識する必要があります。 詳細については、「Datetime データ型の変更」を参照してください