awadhoo...@gmail.com
unread,Mar 25, 2013, 9:09:16 AM3/25/13You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
I have been trying to do array insert in SQL Server 2005 using ODBC 3.0 APIs and SQL Native Client.
Array consists of 3 elements. After SQLExec(), table is populated with 3 rows but with same set of values.
Following is code,
SQLUSMALLINT ParamStatusArray[3];
SQLULEN ParamsProcessed;
SQLCHAR strEnt[3][31]={"first","second","third"};
SQLCHAR strUID[3][129]={"100","2","3"};
SQLCHAR strSession[3][31]={"session1","session2","session3"};
long cbstrUID[3]={SQL_NTS,SQL_NTS,SQL_NTS};
long cbstrSession[3]={SQL_NTS,SQL_NTS,SQL_NTS};
long cbstrEnt[3]={SQL_NTS,SQL_NTS,SQL_NTS};
SQLAllocHandle(SQL_HANDLE_STMT, m_hdbc, &m_hStmtOI);
rc = SQLSetStmtAttr(m_hStmtOI, SQL_ATTR_PARAM_BIND_TYPE, SQL_PARAM_BIND_BY_COLUMN, 0);
rc = SQLSetStmtAttr(m_hStmtOI, SQL_ATTR_PARAMSET_SIZE, (SQLPOINTER)3, SQL_IS_INTEGER);
rc = SQLSetStmtAttr(m_hStmtOI, SQL_ATTR_PARAM_STATUS_PTR, ParamStatusArray, 0);
rc = SQLSetStmtAttr(m_hStmtOI, SQL_ATTR_PARAMS_PROCESSED_PTR, &ParamsProcessed, 0);
rc = SQLBindParameter(m_hStmtOI, 1, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_CHAR, 30, 0, strSession, 0, cbstrSession);
rc = SQLBindParameter(m_hStmtOI, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 128, 0, strUID, 0, cbstrUID);
rc = SQLBindParameter(m_hStmtOI, 3, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_VARCHAR, 60, 0, strEnt, 0, cbstrEnt);
rc = SQLExecDirect(m_hStmtOI, "INSERT INTO TABLE1 (SESSION, ENTID, ENTITY) VALUES (?,?,?)", SQL_NTS);
After executing this, 3 records with same set of values are added to Table1.
Only first elements in arrays are inserted.
Following is output of select statement,
100 first session1
100 first session1
100 first session1
Any idea why this is heppening? Thanks in advance.