调用SQL中的存储过程得到的返回值是空,请帮忙看看是不是哪句代码写错了。

SnowmanBaby1 2003-08-20 10:38:42
Dim cmd As New ADODB.Command
Dim prmDate As New ADODB.Parameter
Dim prmShsljl As New ADODB.Parameter
Dim prmYyljl As New ADODB.Parameter
Dim prmSyljl As New ADODB.Parameter
Dim prmTfljl As New ADODB.Parameter
Dim Return_shsljl As Double
Dim Return_yyljl As Double
Dim Return_syljl As Double
Dim Return_tfljl As Double

Set prmDate = cmd.CreateParameter("@datevalue", adDate, adParamInput, , Now)
cmd.Parameters.Append prmDate
Set prmShsljl = cmd.CreateParameter("@value_shsljl", adDouble, adParamOutput)
cmd.Parameters.Append prmShsljl
Set prmYyljl = cmd.CreateParameter("@value_yyljl", adDouble, adParamOutput)
cmd.Parameters.Append prmYyljl
Set prmSyljl = cmd.CreateParameter("@value_syljl", adDouble, adParamOutput)
cmd.Parameters.Append prmSyljl
Set prmTfljl = cmd.CreateParameter("@value_tfljl", adDouble, adParamOutput)
cmd.Parameters.Append prmTfljl
cmd.CommandText = "sl_EightCount"
cmd.CommandType = adCmdStoredProc
Set cmd.ActiveConnection = cn 'cn为数据库的连接
cmd.Execute
Return_shsljl = cmd.Parameters("@value_shsljl")
Return_yyljl = cmd.Parameters("@value_yyljl")
Return_syljl = cmd.Parameters("@value_syljl")
Return_tfljl = cmd.Parameters("@value_tfljl")
...全文
56 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
estarsoft 2004-03-04
  • 打赏
  • 举报
回复
返回存储过程OUTPUT参复和RETURN返回值的原代码
accessQQ.com 2004-3-4



---------------------------------
ALTER PROCEDURE sp_2
@p int output,
@p1 int,
@p2 int

as
set @p = @p1+@p2
return 99
---------------------------------



Function returnP()

Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = CONN
'@return_value"这个参数在输入参数的最前面,名称是固定的
cmd.Parameters.Append cmd.CreateParameter("@return_value", adInteger, adParamReturnValue)

'输入和输出的参数顺序同存储过程的参数顺序

cmd.Parameters.Append cmd.CreateParameter("@p", adInteger, adParamOutput)

cmd.Parameters.Append cmd.CreateParameter("@p1", adInteger, adParamInput,,1)
cmd.Parameters.Append cmd.CreateParameter("@p2", adInteger, adParamInput,,2)

cmd.CommandText = "sp_2"
cmd.CommandType = adCmdStoredProc

cmd.Execute

Dim i As Integer

For i = 0 To cmd.Parameters.Count - 1
Debug.Print cmd.Parameters(i).Name & "=" & cmd.Parameters(i).Value
Next i

Set cmd.ActiveConnection = Nothing
Set cmd = Nothing

End Function

'----------测试---------

? returnP()
@return_value=99
@p=3
@p2=2
@p1=1
carfield2003 2003-08-20
  • 打赏
  • 举报
回复
Return_shsljl = cmd.Parameters("@value_shsljl").value
Return_yyljl = cmd.Parameters("@value_yyljl").value
Return_syljl = cmd.Parameters("@value_syljl").value
Return_tfljl = cmd.Parameters("@value_tfljl").value

1,216

社区成员

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

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