首页
社区
课程
招聘
[旧帖] odbc api调用存储过程不能同时返回记录集与输出参数值吗 0.00雪花
发表于: 2010-12-27 16:13 4783

[旧帖] odbc api调用存储过程不能同时返回记录集与输出参数值吗 0.00雪花

2010-12-27 16:13
4783
能获得记录集,但不能获得输出参数的值;
如果注释掉存储过程中的 exec(@sql),那么就能获得输出参数的值,但不能获得记录集
这是怎么回事?
if exists(select 1 from sysobjects where name='pageUserlist_p' and xtype='p') 
drop procedure dbo.pageUserlist_p 
go 
create procedure dbo.pageUserlist_p 
@intResult Int OUTPUT

as 
set nocount on 
declare @PageCount1 int
declare @sql nvarchar(4000)
begin tran 
  set @sql='select userid,userCode,userName,loadName,userPwd from user_t'
  exec(@sql)
 set @intResult=12
If @@Error <> 0 
     Begin 
      RollBack Tran 
      SET @intResult=-1 
     End 
Else 
     Begin 
      Commit Tran 
     End 
GO 

调用该存储过程的代码:
 sprintf(select_str,"{call pageUserlist_p(?)}"); 
 connectDB();   //调用连接数据库函数
 retcode = SQLBindParameter(hstmt, 1, SQL_PARAM_OUTPUT, SQL_C_LONG,SQL_INTEGER, 0, 0, &recordTotal, 0, &cb1);  //返回值
  retcode = SQLExecDirect(hstmt,(SQLCHAR *)select_str,SQL_NTS);
 if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
   {
             retcode=SQLBindCol(hstmt,1,SQL_C_ULONG,&userid,11,&cb);        
         retcode=SQLBindCol(hstmt,2,SQL_C_CHAR,userCode,11,&cb);         
             retcode=SQLBindCol(hstmt,3,SQL_C_CHAR,userName,20,&cb);          
             retcode=SQLBindCol(hstmt,4,SQL_C_CHAR,loadName,20,&cb);          
         retcode=SQLBindCol(hstmt,5,SQL_C_CHAR,userPwd,20,&cb); 
      while (TRUE)
     {
              retcode = SQLFetch(hstmt);
             if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
             {
                 //代码
             }
         }
   }


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
真杯具,都没人吱一声!
2010-12-28 10:38
0
雪    币: 76
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哥还不懂,还是支持下,希望有会的人来解决。
2010-12-28 13:41
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢你的支持!
2010-12-28 13:51
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没人指点一下?
2010-12-29 11:11
0
雪    币: 357
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
ODBC的API不熟,为什么不用ADO?
2010-12-31 10:27
0
游客
登录 | 注册 方可回帖
返回
//