Bulk inserts with ODBC 3.0 compliant driver
Posted in 1999
Hi All, I'm trying to insert data using an array of values with an ODBC 3.0 compliant driver (Intersolv 3.11 SP2). Here's a sample of my code: const int numrows = 5; int testint[numrows] = { 1,2,3,4,5 }; SQLUSMALLINT param_status[numrows] = {0,0,0,0,0}; SQLUSMALLINT param_processed = 0; SQLUINTEGER paramset_size = numrows; SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE, SQL_CURSOR_FORWARD_ONLY, 0); SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_BIND_TYPE, SQL_PARAM_BIND_BY_COLUMN, 0); SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMSET_SIZE, &numrows, 0); SQLSetStmtAttr(hstmt, SQL_ATTR_PARAM_STATUS_PTR, param_status, 0); SQLSetStmtAttr(hstmt, SQL_ATTR_PARAMS_PROCESSED_PTR, ¶m_processed, 0); SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, testint, 0, 0); SQLPrepare(hstmt, (unsigned char*)"insert into testtable (colint) values(?)", SQL_NTS); SQLExecute(hstmt); Only the first item from array is inserted. Prior this, we were using Intersolv 2.5 and were able to bulk insert with SQLParamOptions. Is something wrong in my ODBC 3 code or it could be the Intersolv 3.11 driver that doesn't support array of parameters? (nb: all return codes are SQL_SUCCESS) Thanks, Steeve -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own