相关疑难解决方法(0)

将 int64 (SQL_BIGINT) 绑定为查询参数会导致在 Oracle 10g ODBC 中执行期间出错

我在 Oracle 10g 上使用 ODBC 3.0 插入到表中,但失败了,我不知道为什么。数据库在 Windows Server 2003 上。客户端在 Windows XP 上。

桌子:

CREATE TABLE test ( testcol NUMBER(20,0) NULL );
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

SQLBindParameter成功但随后SQLExecute失败。没有诊断消息。

我不得不求助于将 int64 写入字符串并将其绑定为字符串。这是绑定 int64 的唯一方法吗?

oracle odbc oracle10g

4
推荐指数
1
解决办法
3312
查看次数

标签 统计

odbc ×1

oracle ×1

oracle10g ×1