データ型変換

データは、アプリケーション変数間 (C から C) にデータを転送するとき、アプリケーション変数内のデータがステートメント パラメーター (C から SQL) に送信されるとき、結果セット列のデータがアプリケーション変数 (SQL から C) で返されるときに、4 回のいずれか 1 つの型から別の型に変換できます。 と は、あるデータ ソース列から別のデータ ソース列 (SQL から SQL) にデータが転送されるときです。

あるアプリケーション変数から別のアプリケーション変数にデータが転送されるときに発生する変換は、このドキュメントの範囲外です。

アプリケーションが変数を結果セットの列またはステートメント パラメーターにバインドすると、アプリケーションは、アプリケーション変数のデータ型の選択でデータ型変換を暗黙的に指定します。 たとえば、列に整数データが含まれているとします。 アプリケーションが整数変数を列にバインドする場合は、変換が行われないことを指定します。アプリケーションが文字変数を列にバインドする場合、データを整数から文字に変換することを指定します。

ODBC では、各 SQL データ型と C 型の間でデータを変換する方法を定義します。 基本的に、ODBC では、文字から整数への変換、整数から float への変換など、すべての妥当な変換がサポートされており、float から date などの不適切な定義された変換はサポートされていません。 ドライバーは、サポートする各 SQL データ型のすべての変換をサポートするために必要です。 SQL データ型と C データ型の間の変換の完全な一覧については、「付録 D: データ型」の「SQL データ型から C データ型へのデータ変換」を参照してください。

ODBC では、ある SQL データ型から別のデータ型にデータを変換するためのスカラー関数も定義されています。 CONVERT スカラー関数は、ドライバーによって、データ ソースで変換を実行するために定義された基になるスカラー関数または関数にマップされます。 この関数は DBMS 固有の関数にマップされるため、ODBC では、これらの変換のしくみやサポートする必要がある変換は定義されません。 アプリケーションは、 SQLGetInfo のSQL_CONVERT オプションを使用して、特定のドライバーとデータ ソースでサポートされている変換を検出します。 CONVERT スカラー関数の詳細については、「ODBC のエスケープ シーケンス」および「明示的なデータ型変換関数」を参照してください。