十万火急?咋搞的inparam/outparam???????
为什么在如下语句,之后outparm任为NULL????????????
retcode = SQLExecute(hstmt);
开发工具:VC++
数据库:Sybase 11.9
存储过程:
CREATE PROCEDURE dbo.proc_test1
inparm varchar(20),
outparm varchar(30)
AS
BEGIN
select @outparm = @inparm + "12"
return 999
END
程序代码:
......
SQLCHAR inparm[20];
SQLCHAR outparm[30];
short ret=0;
SQLINTEGER m_vcbValues[10];
SQLINTEGER ptr=0;
ZeroMemory(inparm, 20);
ZeroMemory(outparm, 30);
strcpy(inparm, "abc");
......
retcode = SQLPrepare(hstmt, (SQLCHAR *)"{?=call proc_test1(?,?)}", SQL_NTS);
retcode = SQLBindParameter(hstmt, 1, SQL_PARAM_OUTPUT, SQL_C_SSHORT,
SQL_INTEGER, 0, 0, &ret, 0, m_vcbValue+ptr++);
retcode = SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_CHAR, 20, 0, inparm, 20, m_vcbValue+ptr++);
retcode = SQLBindParameter(hstmt, 3, SQL_PARAM_OUTPUT, SQL_C_CHAR,
SQL_CHAR, 30, 0, outparm, 30, m_vcbValue+ptr++);
retcode = SQLExecute(hstmt);
printf("%s\n", outparm);
......