我有一个具有varchar
输出参数的存储过程:
@UserIDOut varchar(50) OUTPUT
在我的 C++ 代码中,我尝试将输出参数绑定到此:
...
SQLCHAR userIDOut[50];
int dbReturn = ExecProc(...(SQLCHAR**)&userIDOut);
...
int ExecProc(...SQLCHAR **userIDOut)
{
...
SQLINTEGER cbParam7 = SQL_NTS;
retcode = SQLBindParameter(hstmt1, 7, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0, *userIDOut, 50, &cbParam7);
retcode = SQLExecDirect(hstmt1, (UCHAR*)"{? = call UpdateUser(?,?,?,?,?,?)}", SQL_NTS);
我还有其他几个输入参数,以及这个存储过程的返回值。我已经尝试了这个函数调用的一些变体,但我从来没有在userIDOut
. 如果我从 SQL Server 执行存储过程,我会得到正确的输出。
有什么想法吗?