请问怎么取出数据库的返回值,注意不是输入参数的值
kneek 2004-08-31 12:43:36 我的代码如下:
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim param As New ADODB.Parameter
cn.ConnectionString = "Driver={sql server};server=148.2.1.12;uid=sa;pwd=;database=data_db"
cn.Open
If rs.State = adStateOpen Then rs.Close
cmd.ActiveConnection = cn
cmd.CommandText = "test"
cmd.CommandType = adCmdStoredProc
'返回值
Set param = cmd.CreateParameter("RetVal", adInteger, adParamReturnValue, 4)
cmd.Parameters.Append param
'输入参数
Set param = cmd.CreateParameter("serviceid", adChar, adParamInput, 5, Trim(txtServiceid.Text))
cmd.Parameters.Append param
'输出参数
Set param = cmd.CreateParameter("servicename", adChar, adParamOutput, 40)
cmd.Parameters.Append param
Set rs = cmd.Execute()
If cmd.Parameters("RetVal").Value = 0 Then
MsgBox cmd.Parameters("servicename").Value
Else
MsgBox "没有记录"
End If
Set rs = Nothing
cn.Close
Set cmd = Nothing
Set param = Nothing
Set cn = Nothing
存储过程:
create proc test @serviceid char(5),@servicename char(40) output
as
select @servicename=service_name from conf_service where service_id=@serviceid
if @@rowcount=1
return 0
else
return @@rowcount
在VB的代码中去不出返回值和输出参数
如果我把
Set rs = cmd.Execute()
改为
cmd.Execute
可以取出输入参数@servicename的值还是取不出存储过程的返回值。请问错误原因在哪儿啊?