在用ADO调用存储过程的时候,如何得到它的返回值?

ttt 2001-12-05 01:18:26
execute的方法返回的是recordset,可我在存储过程里面返回一个字符串如何得到呢 ?
...全文
137 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmao 2001-12-06
  • 打赏
  • 举报
回复
是输入的参数,对应存储过程里的变量
shiwu 2001-12-05
  • 打赏
  • 举报
回复
是的
事实上不用写得这么复杂,只要在传递参数前,调用parameters的refresh,然后就可以直接传递参数了
as follow:
(in sqlserver2000)
create procdure kk
@a int,
@b int output
as
begin
set @b=@a
end
(in vb)
set conn.createobject("adodb.connection")
set cmd=createobject("adodb.command")
conn.open ""
cmd.activeconnection=conn
cmd.parameters.refresh
cmd.parameters("@a")=1
cmd.execute
msgbox cmd.parameters("@b")
ttt 2001-12-05
  • 打赏
  • 举报
回复
Set parIn = cmdTest.CreateParameter(名称, 类型, adParamInput, 长度, 值)

这里的 名称 是指在存储过程里定义的变量名还是什么?
ttt 2001-12-05
  • 打赏
  • 举报
回复
to xmao(小猫):
我用你的方法做了以后,现在不出现异常,但我用 parOut->Value,得到的是"", 为什么?
net_steven 2001-12-05
  • 打赏
  • 举报
回复
存储过程里定义一个out参数;ADO.COMMAND.parameters.addPARAMETER(...) 定义相对应的接受
xmao 2001-12-05
  • 打赏
  • 举报
回复
抄一段给你
Dim cmdTest As ADODB.Command
Dim parIn As ADODB.Parameter
Dim parOut As ADODB.Parameter

Set cmdTest = New ADODB.Command

cmdTest.Prepared

'输入参数用 adParamInput,其中名称,类型长度和值按你的需要来写
Set parIn = cmdTest.CreateParameter(名称, 类型, adParamInput, 长度, 值)
cmdTest.Parameters.Append parIn

'输入参数用 adParamOutput
Set parOut = cmdTest.CreateParameter("输出参数", 类型, adParamOutput, 长度, 值)
cmdTest.Parameters.Append parOut

cmdTest.Execute

MsgBox cmdTest.Parameters("输出参数"), vbInformation
N_chow 2001-12-05
  • 打赏
  • 举报
回复
用ADO.Command物件。查以前的帖子,或者查MSDN.

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧