由 DB2 CLI 函数进行的数据转换

DB2 CLI 管理应用程序与 DB2 Everyplace 之间数据的传送和任何必需的转换。在数据传输实际发生之前, 在调用 SQLBindParameter()SQLBindCol()SQLGetData() 时指示源和/或目标的数据类型。这些函数使用符号名(如 SQL_CHAR 和 SQL_C_CHAR)来标识涉及的数据类型。

例如,要将与 SQL_VARCHAR 的 SQL 数据类型相应的参数标记绑定至应用程序的长整数 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

相关参考