求助,在nt环境下存储过程传递参数类型不符,呵呵,分数好商量。
我刚学在nt下运行存储过程,但编译后产生类型不符的问题,不知道什么原因,望兄弟们解决,问题我尽力写得简单些,如果有不详尽请提问,现在我在线
这是在Stored Procedure Builder定义存储过程的参数定义:
(out int)
这是存储过程返回参数程序段:
。。。
long l_inward_rtn;
。。。
inout_sqlda->sqlvar[3].sqltype=SQL_TYP_NINTEGER ;
inout_sqlda->sqlvar[3].sqllen=sizeof(l_inward_rtn);
*(inout_sqlda->sqlvar[3].sqlind)=0;
*(long *)(inout_sqlda->sqlvar[3].sqldata) = l_inward_rtn;
。。。
编译通过,但run存储过程时提示出错:
[IBM][CLI Driver][DB2/NT] SQL1113N The data type for sqlvar "1" in the output SQLDA was changed from "501" to "497". SQLSTATE=39502
DB2ADMIN.TESTPROC - Changes rolled back.
DB2ADMIN.TESTPROC - Done calling stored procedure.
--------附SQLDA SQL Types
INTEGER 496/497 SQL_TYP_INTEGER / SQL_TYP_NINTEGER
SMALLINT 500/501 SQL_TYP_SMALL / SQL_TYP_NSMALL