Thread: Problem with SQL_LONGVARBINAY
Hi, There's a problem when insert a SQL_LONGVARBINARY(lo) column in the following way: Use SQLBindParameter(...SQL_DATA_AT_EXEC) and SQLParamData, SQLPutData. The last time SQLParamData revoke a crash! This is the sample code: for (...) { sdw = SQL_DATA_AT_EXEC; rc = SQLBindParameter(hstmt, w, SQL_PARAM_INPUT, SQL_C_TCHAR, rgFields[ind].wSQLType, rgFields[ind].precision, rgFields[ind].scale, (LPTSTR)(((UDWORD)ind)+BIND_PARM_OFFSET), 0, &sdw); } rc = SQLExecDirect(hstmt, lpqt->sz, SQL_NTS); if (SQL_NEED_DATA != rc) return; for(ind = 0; ind <= cTypes; ind++) { rc = SQLParamData(hstmt, &ptr); if(rc != SQL_NEED_DATA) break; pch = qtMakeData(...); if(*pch) { rc = SQLPutData(hstmt, pch, SQL_NTS); } else { rc = SQLPutData(hstmt, (LPTSTR)IGNORED, SQL_NULL_DATA); } } please check, thanks and regards! Han zhouhanok@vip.sina.com 2003-03-17
Sorry for the delay. Please try the snapshot dll at http://www.geocities.jp/inocchichichi/psqlodbc/. regards, Hiroshi Inoue http://www.geocities.jp/inocchichichi/psqlodbc/ Han wrote: > > Hi, > There's a problem when insert a SQL_LONGVARBINARY(lo) column in the following way: > Use SQLBindParameter(...SQL_DATA_AT_EXEC) > and SQLParamData, SQLPutData. > The last time SQLParamData revoke a crash! > This is the sample code: > for (...) > { > sdw = SQL_DATA_AT_EXEC; > rc = SQLBindParameter(hstmt, w, SQL_PARAM_INPUT, > SQL_C_TCHAR, rgFields[ind].wSQLType, > rgFields[ind].precision, rgFields[ind].scale, > (LPTSTR)(((UDWORD)ind)+BIND_PARM_OFFSET), 0, &sdw); > } > rc = SQLExecDirect(hstmt, lpqt->sz, SQL_NTS); > if (SQL_NEED_DATA != rc) > return; > for(ind = 0; ind <= cTypes; ind++) > { > rc = SQLParamData(hstmt, &ptr); > if(rc != SQL_NEED_DATA) > break; > > pch = qtMakeData(...); > > if(*pch) { > rc = SQLPutData(hstmt, pch, SQL_NTS); > } else { > rc = SQLPutData(hstmt, (LPTSTR)IGNORED, SQL_NULL_DATA); > } > } > > please check, thanks and regards!