对于SQLCHAR类型参数,ODBC SQLBindParameter的ColumnSize参数是否可以为strlen(param)+ 1?

| 当http://msdn.microsoft.com/zh-cn/library/ms710963(v=vs.85).aspx上的SQLBindParameter函数示例在C类型是“ 0”。 引用该页面中部分示例:
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
包含以空值结尾的字符串,我想知道以下调用是否可以。
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);
    
已邀请:
这个问题的答案是“是”。     

要回复问题请先登录注册