Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

array insert in sql server

84 views
Skip to first unread message

awadhoo...@gmail.com

unread,
Mar 25, 2013, 9:09:16 AM3/25/13
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.



0 new messages