付録 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 フィールドで指定されます。

Note

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

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

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

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