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 をバインドする唯一の方法ですか?