关于存储过程调用的问题,请高手帮帮我

天地客人 2005-04-05 11:37:51
Dim ADOCom As New ADODB.Command
Dim Reset As New ADODB.Recordset

With ADOCom
.ActiveConnection = DBCNN
.CommandType = adCmdStoredProc
.CommandText = "存储过程名"
.Parameters("@RootID").Value =0 '输入参数
Set Reset = .Execute '执行,数据集给Reset,这也是正确的
While not Reset.EOF '存在结果,正确
NameStr = Trim(Reset.Fields("Name").Value)
Reset.MoveNext
Wend

DD = .Parameters("@DD").Value '这是Output输出参数,存储过程是正确的,在分析器中也是有值的,可在这为什么为NULL
End With
...全文
142 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
softj00 2005-04-08
  • 打赏
  • 举报
回复
'---------------调用存储过程
Dim ADOCom As New ADODB.Command
Dim Reset As New ADODB.Recordset
With ADOCom
.ActiveConnection = DBCNN
.CommandType = adCmdStoredProc
.CommandText = "存储过程名"
.Parameters("@RootID").Value =0 '输入参数
Set Reset = .Execute '执行,数据集给Reset,这也是正确的
While not Reset.EOF '存在结果,正确
NameStr = Trim(Reset.Fields("Name").Value)
Reset.MoveNext
Wend

.Execute '再次调用获取输出参数
DD = .Parameters("@DD").Value '这是Output输出参数,存储过程是正确的,在分析器中也是有值的,可在这为什么为NULL
End With
天地客人 2005-04-07
  • 打赏
  • 举报
回复
有高手帮我吗?分不够,可以开贴再加!
lzheng2001 2005-04-06
  • 打赏
  • 举报
回复
学习!
天地客人 2005-04-06
  • 打赏
  • 举报
回复
MS SQL Server 2000的存储过程,
存储过程同时有数据集返回和参数返回

怎样在VB中调用此类存储过程时,同时返回数据集和参数???
天地客人 2005-04-06
  • 打赏
  • 举报
回复
to:samchang 同样参数在分析器中运行,是有数据返回的,一是数据集,一是DD的字符值;可为什么到VB中只有数据集返回了,返回参数据中,就没值了呢?

-----------------------------------------------------------------
我发现把这一句
Set Reset = .Execute
改成:.Execute
则DD = .Parameters("@DD").Value就有值了,可数据集又怎返回呢?
samchang 2005-04-06
  • 打赏
  • 举报
回复
问题可能在于.Parameters("@DD").Value,这里Value接受的是数值数据,如果不是数值将会是NULL
shipL 2005-04-06
  • 打赏
  • 举报
回复
学习!!
天地客人 2005-04-05
  • 打赏
  • 举报
回复
--只是存储过程,应没问题,在分析中可以是正确的
CREATE PROCEDURE [存储过程名](
@RootID int,
@DD Char(10) output)
AS
Select @DD = dd From 表1 Where RootID = @RootID --RootID主键只有一条记录
Select Name From 表2 Where RootID = @RootID --RootID外键有多条记录
GO
--------------------------------
为什么到VB中,数据集中有数据,返回参数没有值呢?请高手帮我??
yangao 2005-04-05
  • 打赏
  • 举报
回复
没看出问题
把存储过程贴出来看下
天地客人 2005-04-05
  • 打赏
  • 举报
回复
同样的参数在分析器中调用运行,是有返回值的。

为什么到VB中Set Reset = .Execute 这里有值返回,DD = .Parameters("@DD").Value 这里没有值呢?

好像在VB中ADO调用存储过程这有问题,
连数据库:Driver={SQL Server};DataBase=" & DataBase & ";Server=" & SQLServerName & ";Uid=" & UserName & ";Pwd=" & UserPassword & ";" 这应没有问题吧!

--------------请高手帮我???????????
yangao 2005-04-05
  • 打赏
  • 举报
回复
测试过了,没有问题
当查找不到记录或dd字段值为NULL时结果才为NULL
看看你的输入参数.Parameters("@RootID").Value =0 '输入参数
或者数据库记录

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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