Categories: MSDN / DotNet / Java / Scripts / Linux / PHP Ask - La ask - La Answer

output parameter cant get value from stored procedure

alter proc sp_AdoTest( @InParam int, @OutParam int OUTPUT )
as
SELECT @OutParam = @InParam + 10
SELECT * FROM pubs..Authors
WHERE State <> 'CA'
RETURN @OutParam +10

this code stored procedure

Private Sub Command1_Click()
Dim cmd1 As ADODB.Command
Dim param1 As ADODB.Parameter
Dim param2 As ADODB.Parameter
Dim param3 As ADODB.Parameter
Dim rs1 As ADODB.Recordset

Set cmd1 = New ADODB.Command
cmd1.ActiveConnection = pubServerConnect
cmd1.CommandText = "{call ?=sp_AdoTest(?, ?)}"

Set param1 = cmd1.CreateParameter(, adInteger, adParamReturnValue)
cmd1.Parameters.Append param1

Set param2 = cmd1.CreateParameter(, adInteger, adParamInput)
cmd1.Parameters(1).Value = 10 <<<<<<<< error
param2.Value = 10
cmd1.Parameters.Append param2

Set param3 = cmd1.CreateParameter(, adInteger, adParamOutput)
cmd1.Parameters.Append param3

Set rs1 = cmd1.Execute() <<<<<<<< error

this code from VB
param3 can't get output value it = ""
true value this return = 20 but this code return = 10 ? help me please
[1249 byte] By [moohja] at [2007-11-11 7:53:10]
# 1 Re: output parameter cant get value from stored procedure
Set cmd1 = New ADODB.Command
cmd1.ActiveConnection = pubServerConnect
cmd1.CommandText = "{call ?=sp_AdoTest(?, ?)}"

Set param1 = cmd1.CreateParameter(, adInteger, adParamReturnValue)
cmd1.Parameters.Append param1
param1.Value = 20

Set param2 = cmd1.CreateParameter(, adInteger, adParamInput)
cmd1.Parameters.Append param2 ' <<<<<<<< error
param2.Value = 20

Set param3 = cmd1.CreateParameter(, adInteger, adParamOutput)
cmd1.Parameters.Append param3 ' <<<<<<<< error
param3.Value = 30

Set rs1 = cmd1.Execute()

First set parameter
Append that parameter to commandset
Add the value

Hope this will solve ur proble

Bye
sharma_dilip1 at 2007-11-11 17:26:24 >