我正在學習如何使用SQLBindParameter
函數。我正在通過互聯網上的幾個例子,我不清楚我應該通過什麼作爲SQLBindParameter
函數的第6個參數。在C/C++程序中作爲ODBC SQLBindParameter的ColumnSize參數傳遞什麼?
http://msdn.microsoft.com/en-us/library/ms710963(v=vs.85).aspx的示例在C類型爲SQL_C_CHAR
時傳遞字符數組的大小,而在C類型爲SQL_C_SSHORT
時爲0。
SQLSMALLINT sCustID;
SQLCHAR szEmployeeID[EMPLOYEE_ID_LEN];
SQL_DATE_STRUCT dsOrderDate;
SQLINTEGER cbCustID = 0, cbOrderDate = 0, cbEmployeeID = SQL_NTS;
...
retcode = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, EMPLOYEE_ID_LEN, 0, szEmployeeID, 0, &cbEmployeeID);
retcode = SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_SSHORT, SQL_INTEGER, 0, 0, &sCustID, 0, &cbCustID);
然而,在http://publib.boulder.ibm.com/infocenter/db2e/v8r2/index.jsp?topic=%2Fcom.ibm.db2e.doc%2Fdbeapc1702.html一例SQL_C_TCHAR和SQL_C_LONG一些正整數傳遞0。
long p1 = 10;
short p2 = 100;
TCHAR p3[100];
...
// bind input parameters
rc = SQLBindParameter(hstmt, (unsigned short)1, SQL_PARAM_INPUT,
SQL_C_LONG, SQL_INTEGER, 4, 0, &p1, sizeof(p1), &len);
// check return code ...
rc = SQLBindParameter(hstmt, (unsigned short)2, SQL_PARAM_INPUT, SQL_C_LONG,
SQL_SMALLINT, 2, 0, &p2, sizeof(p2), &len);
// check return code ...
len = SQL_NTS;
rc = SQLBindParameter(hstmt, (unsigned short)3, SQL_PARAM_INPUT, SQL_C_TCHAR,
SQL_CHAR, 0, 0, &p3[0], 100, &len);
可能有人請澄清我們究竟如何決定要傳遞到SQLBindParameter
參數?
在這裏發佈相關問題:http://stackoverflow.com/q/5636712/303363 – 2011-04-12 14:54:27