Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Q: Inserting LONG RAW through ODBC on Oracle 8 causes "Function sequence error"
Hi all
I'm trying to insert long raw and having problems. Since Oracle's ODBC driver's SQLPutData supports only up to 32k (per chunk), I need to repeat SQLPutData. My codes are like:
char* insertStmt = "INSERT INTO blobtest (first) VALUES (?)";
SQLINTEGER copied = SQL_LEN_DATA_AT_EXEC(buflen - 1);
ret = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_LONGVARBINARY, buflen, 0, (SQLPOINTER) 2, buflen - 1, &copied); ret = SQLExecDirect(hstmt, (PUCHAR)insertStmt, SQL_NTS); SQLPOINTER pToken;
SQLPOINTER next = longraw;
if (ret == SQL_NEED_DATA)
{
ret = SQLParamData(hstmt, &pToken); for (int i = 0; i < buflen/sendlen; i++) { ret = SQLPutData(hstmt, next, sendlen); next = (SQLPOINTER) ((DWORD) next + sendlen); }
ret = SQLEndTran(SQL_HANDLE_DBC , hdbc, SQL_COMMIT);
When I commit, it gets "Function sequence error". SQLParamData works only once. If I call SQLParamData more than once as ODBC manual says, it gets "Function sequence error", too.
I'm stuck now. Does anybody have any idea?
Thank you. Received on Tue Mar 23 1999 - 22:16:54 CST