Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Q: Inserting LONG RAW through ODBC on Oracle 8 causes "Function sequence error"

Q: Inserting LONG RAW through ODBC on Oracle 8 causes "Function sequence error"

From: txm <txm_at_best.com>
Date: Tue, 23 Mar 1999 20:16:54 -0800
Message-ID: <36f8673e$0$216@nntp1.ba.best.com>


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:



#define buflen 70000
#define sendlen 10000

 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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US