У меня есть вставка в таблицу с использованием ODBC 3.0 в Oracle 10g, которая не работает, и я понятия не имею, почему. База данных находится на 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?