付録 D: データ型

ODBC では、SQL データ型と C データ型の 2 つのデータ型セットが定義されています。 SQLデータ型は、データ ソースに格納されているデータのデータ型を示します。 C データ型は、アプリケーション バッファーに格納されているデータのデータ型を示します。

SQLデータ型は、SQL-92 標準に従って各 DBMS によって定義されます。 SQL-92 標準で指定されたSQLデータ型ごとに、ODBC は型識別子を定義します。これは、ODBC 関数で引数として渡されるか、結果セットのメタデータで返される#define値です。 ODBC でサポートされないデータ型SQL-92 のデータ型は、BIT (ODBC SQL_BIT 型の特性が異なる)、BIT_VARYING、TIME_WITH_TIMEZONE、TIMESTAMP_WITH_TIMEZONE、およびNATIONAL_CHARACTERのみです。 ドライバーは、データ ソース固有のSQL データ型を ODBC SQL データ型識別子とドライバー固有のSQLデータ型識別子にマッピングする役割を担います。 SQLデータ型は、実装記述子のSQL_DESC_CONCISE_TYPE フィールドで指定します。

ODBC は、C データ型とそれに対応する ODBC 型識別子を定義します。 アプリケーションは、SQLBindCol または SQLGetData の呼び出しで TargetType 引数に適切な C 型識別子を渡すことで、結果セット データを受信するバッファーの C データ型を指定します。 SQLBindParameter の呼び出しで ValueType 引数に適切な C 型識別子を渡すことで、ステートメント パラメーターを含むバッファーの C 型を指定します。 C データ型は、アプリケーション記述子の SQL_DESC_CONCISE_TYPE フィールドで指定されます。

注意

ドライバー固有の C データ型はありません。

各SQLデータ型は、ODBC C データ型に対応します。 データ ソースからデータを返す前に、ドライバーは指定した C データ型に変換します。 データ ソースにデータを送信する前に、ドライバーは指定された C データ型からデータを変換します。

この付録には、次のトピックが含まれています。

ODBC データ型の詳細については、「ODBC のデータ型」を参照してください。 ドライバー固有のSQLデータ型の詳細については、ドライバーのドキュメントを参照してください。