我在SQl Server中创建
Create Procedure AP_TEST @User varchar(11),
@Message varchar(140),
@ReturnMessage varchar(140) output,
@Fee int output
AS
BEGIN
SELECT @ReturnMessage= '这是一个测试程序'
SELECT @Fee = 100
insert TestTableName(ReturnMessage,Fee) values(@ReturnMessage,@Fee)
return
END 在VC中调用ODBC去调用该存储过程
char User[11];
char Message[140];
cahr ReturnMessage[140];
int Fee;
SQLINTEGER cbUser = SQL_NTS,cbMessage = SQL_NTS,cbReturnMessage = SQL_NTS,
cbFee = SQL_NTS; SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,11,0,User,0,&cbUser);
SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,140,0,Message,0,&cbMessage);
SQLBindParameter(hstmt,3,SQL_PARAM_OUTPUT,SQL_C_CHAR,SQL_CHAR,140,0,ReturnMessage,140,&cbReturnMessage);
SQLBindParameter(hstmt,4,SQL_PARAM_OUTPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,&Fee,20,&cbFee); strcpy(UserID,"13574101234");
strcpy(MessageContent,"测试");
TRACE("返回结果1:%s",ReturnMessage);
TRACE("返回结果2:%d",Fee);
结果输出的是:
返回结果1:返回结果2:-68785633;但是我在数据库里发现存储过程AP_TEST 执行的很好的,是对的,为什么
Create Procedure AP_TEST @User varchar(11),
@Message varchar(140),
@ReturnMessage varchar(140) output,
@Fee int output
AS
BEGIN
SELECT @ReturnMessage= '这是一个测试程序'
SELECT @Fee = 100
insert TestTableName(ReturnMessage,Fee) values(@ReturnMessage,@Fee)
return
END 在VC中调用ODBC去调用该存储过程
char User[11];
char Message[140];
cahr ReturnMessage[140];
int Fee;
SQLINTEGER cbUser = SQL_NTS,cbMessage = SQL_NTS,cbReturnMessage = SQL_NTS,
cbFee = SQL_NTS; SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,11,0,User,0,&cbUser);
SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,140,0,Message,0,&cbMessage);
SQLBindParameter(hstmt,3,SQL_PARAM_OUTPUT,SQL_C_CHAR,SQL_CHAR,140,0,ReturnMessage,140,&cbReturnMessage);
SQLBindParameter(hstmt,4,SQL_PARAM_OUTPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,&Fee,20,&cbFee); strcpy(UserID,"13574101234");
strcpy(MessageContent,"测试");
TRACE("返回结果1:%s",ReturnMessage);
TRACE("返回结果2:%d",Fee);
结果输出的是:
返回结果1:返回结果2:-68785633;但是我在数据库里发现存储过程AP_TEST 执行的很好的,是对的,为什么
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货