SQLBindParameter 函数的示例位于http://msdn.microsoft.com/en-us/library/ms710963(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/ms710963(v=vs.85).aspx当 C 类型为时,将字符数组的大小作为 ColumnSize 参数(第 6 个参数)传递SQL_C_CHAR
.
引用该页面的部分示例:
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);
我想知道是否可以将字符串参数的长度加 1 作为 ColumnSize 参数传递。换句话说,我想知道如果我们假设以下调用是否可以szEmployeeID
包含一个以 null 结尾的字符串。
retcode = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
SQL_C_CHAR, SQL_CHAR, strlen(szEmployeeID) + 1,
0, szEmployeeID, 0, &cbEmployeeID);
我相信这在以下调用中非常有用:
SQLLEN nts = SQL_NTS;
retcode = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
SQL_C_CHAR, SQL_CHAR, 6,
0, "hello", 0, &nts);
char *domain = "stackoverflow.com";
retcode = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
SQL_C_CHAR, SQL_CHAR, strlen(domain) + 1,
0, domain, 0, &nts);