当C类型为SQL_C_CHAR时,http://msdn.microsoft.com/en-us/library/ms710963(v=vs.85).aspx上的SQLBindParameter函数的示例将字符数组的大小作为ColumnSize参数(第6个参数)传递。
引用该页面中的部分示例:
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);发布于 2011-10-10 05:22:26
这个问题的答案是“是”。
https://stackoverflow.com/questions/5636712
复制相似问题