Я учусь использовать функцию SQLBindParameter
.Я просматривал пару примеров в Интернете, и неясно, что я должен передать в качестве шестого аргумента функции SQLBindParameter
.
Пример в http://msdn.microsoft.com/en-us/library/ms710963(v=vs.85).aspx передает размермассива символов, когда тип C равен SQL_C_CHAR
, и 0, если тип C равен SQL_C_SSHORT
.
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 передает 0 для SQL_C_TCHAR и некоторые натуральные числа для SQL_C_LONG.
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
?