您的位置:程序门 -> vb -> 数据库(包含打印,安装,报表)



ado 调用有output参数,有返回值,有返回记录集的存储过程


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


ado 调用有output参数,有返回值,有返回记录集的存储过程
发表于:2007-07-27 10:30:06 楼主
都是成功了,现在要一一去取那些output参数,返回值和记录集的值

  看了一下ms 的在线帮助

  http://support.microsoft.com/kb/q185125/#top

  里面有这么一句话,

  in   addition,   if   the   stored   procedure   is   returning   output   or   return   parameters,   you   need   to   close   the   recordset   before   checking   the   value   of   the   output   parameters.  

  要先关闭记录集,才能取output参数

  但问题是,我想先取返回值,再取记录集(我要根据返回值判断那个select有没有成功),取完就关闭,再取output参数值

  问题是这样的话,取返回值是ok的,记录集是ok的,然后关闭,但是最后取output参数不对了
  
  我只能先取记录集 ,然后关闭,再取返回值,再取output参数

  但是再线帮助,不是说了吗,只要在取output之前关闭就ok了吗??

  难道一定要在output和return之前关闭吗?

  谁能提供一些建议?或者有经验的?

发表于:2007-07-27 10:59:311楼 得分:0
我想知道

有没有先取返回值,再关闭记录集,再取output的办法?
发表于:2007-07-27 11:10:412楼 得分:0
取   sp   的返回值不要用   recordset,如下:
dim   cmd   as   adodb.command
dim   prm   as   adodb.parameter

set   cmd   =   new   adodb.command
set   cmd.activeconnection   =   cn
cmd.commandtext   =   "?   =   sp_x() "   ‘格式有点忘了,不是很确定

set   prm   =   cmd.createparameter( "result ",   adinteger,   adparamreturnvalue)
cmd.parameters.append   prm

cmd.EXECute

debug.print   prm.value
发表于:2007-07-27 11:14:413楼 得分:0
取返回值,和取output的时候不要取记录集??

那我什么时候拿记录集?
发表于:2007-07-27 11:19:364楼 得分:0
我的sp是这样的

create   procedure   sp_asdgad

@out     char(10)   output
)
as
begin
declare   @bb   int

select   @bb   =   1

select   @out   =   'test '

select   aaa   from   table1  

return   @bb
end

如果我先取那个记录集,再取那个@bb,最后@out     是ok的

如果先@bb,再关闭记录集,最后@out     ,那个output值不对

根据http://support.microsoft.com/kb/q185125/#top
里的说法

必需先关闭记录集,然后取@out

但是他没说要先关闭记录集,再去     @bb这个return value阿
我想知道的是,能否先@bb,再关闭记录集,最后@out     ,

还是必要要第一个就关闭记录集
发表于:2007-07-27 13:08:245楼 得分:0
set   rs=cmd.EXECute()
set   rs.activeconnection   =   nothing   '将记录设为非链接的模式
'接下来访问   prm   和   rs   试试


快速检索

最新资讯
热门点击