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に変更されています。

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

これらの変更は 、SQLDescribeCol、 SQLDescribeParam、 および SQLColAttribute に影響します。 SQLBindCol、 SQLBindParameter、 および SQLGetData。 および SQLColumns、 SQLGetTypeInfo、 SQLProcedureColumns、 SQLStatistics、 および SQLSpecialColumns。

次の表は、ODBC 3.x ドライバー マネージャーが、SQLBindCol と SQLGetData の TargetType 引数または SQLBindParameter の ValueType 引数に入力された日付、時刻、およびタイムスタンプの C データ型のマッピングを実行する方法を示しています。

データの種類

入力されたコード
2.x アプリ

2.x ドライバー
2.x アプリ

3.x ドライバー
バージョン3.x アプリケーション

2.x ドライバー
3.x アプリ

3.x ドライバー
SQL_C_DATE (9) マッピングなし SQL_C_TYPE_DATE (91) マッピングなし[1] SQL_C_TYPE_DATE (91)
SQL_C_TYPE_DATE (91) エラー (DM から) エラー (DM から) SQL_C_DATE (9) マッピングなし[2]
SQL_C_TIME (10) マッピングなし SQL_C_TYPE_TIME (92) マッピングなし[1] SQL_C_TYPE_TIME (92)
SQL_C_TYPE_TIME (92) エラー (DM から) エラー (DM から) SQL_C_TIME (10) マッピングなし[2]
SQL_C_TIMESTAMP (11) マッピングなし SQL_C_TYPE_TIMESTAMP (93) マッピングなし[1] SQL_C_TYPE_TIMESTAMP (93)
SQL_C_TYPE_TIMESTAMP (93) エラー (DM から) エラー (DM から) SQL_C_TIMESTAMP (11) マッピングなし[2]

この結果、ODBC 2.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。

この結果、ODBC 3.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。

次の表は、SQLBindParameter の ParameterType 引数または SQLGetTypeInfo の DataType 引数に入力された日付、時刻、およびタイムスタンプの SQL データ型のマッピングを ODBC 3.x ドライバー マネージャーが実行する方法を示しています。

データの種類

入力されたコード
2.x アプリ

2.x ドライバー
2.x アプリ

3.x ドライバー
3.x アプリ

2.x ドライバー
3.x アプリ

3.x ドライバー
SQL_DATE (9) マッピングなし SQL_TYPE_DATE (91) マッピングなし[1] SQL_TYPE_DATE (91)
SQL_TYPE_DATE (91) エラー (DM から) エラー (DM から) SQL_DATE (9) マッピングなし[2]
SQL_TIME (10) マッピングなし SQL_TYPE_TIME (92) マッピングなし[1] SQL_TYPE_TIME (92)
SQL_TYPE_TIME (92) エラー (DM から) エラー (DM から) SQL_TIME (10) マッピングなし[2]
SQL_TIMESTAMP (11) マッピングなし SQL_TYPE_TIMESTAMP (93) マッピングなし[1] SQL_TYPE_TIMESTAMP (93)
SQL_TYPE_TIMESTAMP (93) エラー (DM から) エラー (DM から) SQL_TIMESTAMP (11) マッピングなし[2]

この結果、ODBC 2.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。

この結果、ODBC 3.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。