to xmao(小猫): 我用你的方法做了以后,现在不出现异常,但我用 parOut->Value,得到的是"", 为什么?
Set parIn = cmdTest.CreateParameter(名称, 类型, adParamInput, 长度, 值)这里的 名称 是指在存储过程里定义的变量名还是什么?
是的 事实上不用写得这么复杂,只要在传递参数前,调用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")
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
我用你的方法做了以后,现在不出现异常,但我用 parOut->Value,得到的是"", 为什么?
事实上不用写得这么复杂,只要在传递参数前,调用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")