DB2 CLI 関数によるデータ変換

DB2 CLI は、アプリケーションと DB2 Everyplace 間のデータの転送および必要な 変換を管理します。データ転送が実際に行われる前に、SQLBindParameter()SQLBindCol()、 または SQLGetData() の呼び出し時に、ソース、ターゲット、またはその 両方のデータ・タイプが示されます。 これらの関数はシンボル名 (SQL_CHAR およ び SQL_C_CHAR など) を使用して、関連するデータ・タイプを識別します。

例えば、SQL データ・タイプ SQL_VARCHAR に対応するパラメーター・マーカーを、 アプリケーションの長整数の C バッファー・タイプにバインドしたい場合、 適切な SQLBindParameter() 呼び出しは、次のようになります。

SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_LONG,
                  SQL_VARCHAR, 0, 0, long_ptr, 0, NULL);

表 86 は、C と SQL データ・タイプ間でサポートされるデータ変換 を示しています。表 86 の最初の列には SQL データ・ タイプが含まれています。残りの列は C データ・タイプを示しています。 C データ・タイプの列の文字の意味は次のとおりです。

D
この変換はサポートされ、SQL データ・タイプのデフォルトの変換です。

X
DB2 Everyplace はこの変換をサポートします。

ブランク
DB2 Everyplace はこの変換をサポートしません。

タイプ変換の際の精度と位取りに関する制限事項、および切り捨てと丸めに関する規則は、 SQL の構文規則に従っています。


表 86. サポートされているデータ変換

SQL データ・タイプ デフォルトの変換 サポートされているその他の変換
BLOB SQL C BINARY SQL C CHAR
CHAR SQL C CHAR SQL C LONG
SQL C SHORT
SQL C TINYINT
SQL C TYPE DATE
SQL C TYPE TIME
SQL C BINARY
SQL C BIT
SQL C TYPE TIMESTAMP
DATE SQL C TYPE DATE SQL C CHAR
DECIMAL SQL C CHAR SQL C LONG
SQL C SHORT
SQL C TINYINT
SQL C BIT
INTEGER SQL C LONG SQL C CHAR
SQL C SHORT
SQL C TINYINT
SQL C FLOAT
SQL C DOUBLE
SQL C BIT
SMALLINT SQL C SHORT SQL C CHAR
SQL C LONG
SQL C TINYINT
SQL C FLOAT
SQL C DOUBLE
SQL C BIT
TIME SQL C TYPE TIME SQL C CHAR
TIMESTAMP SQL C TYPE TIMESTAMP SQL C CHAR
VARCHAR SQL C CHAR SQL C LONG
SQL C SHORT
SQL C TINYINT
SQL C TYPE DATE
SQL C TYPE TIME
SQL C BINARY
SQL C BIT
SQL C TYPE TIMESTAMP

関連した解説