我在 Oracle 10g 上使用 ODBC 3.0 插入表失败,我不知道为什么。数据库在 Windows Server 2003 上。客户端在 Windows XP 上。
桌子:
CREATE TABLE test ( testcol NUMBER(20,0) NULL );
ODBC 调用:
SQLAllocHandle(SQL_HANDLE_STMT) = SQL_SUCCESS
SQLPrepare(INSERT INTO test (testcol) VALUES (?);) = SQL_SUCCESS
SQLINTEGER nStrLen = 0;
__int64 nInt64 = 99;
SQLBindParameter(hStatement, 1, SQL_PARAM_INPUT,
SQL_C_SBIGINT, SQL_BIGINT, 20, 0, &nInt64, 0, &nStrLen) = SQL_SUCCESS
SQLExecute() = SQL_ERROR
SQLGetDiagRec(1) = SQL_NO_DATA
SQLBindParameter
成功但随后SQLExecute
失败。没有诊断消息。
我不得不求助于将 int64 写入字符串并将其绑定为字符串。这是绑定 int64 的唯一方法吗?