Procedimiento almacenado y Objeto Command de Visual Basic 6.0

joseamesti
19 de Marzo del 2003
Hola tengo un problema al llamar a un procedimiento almacendo en sql sever 2000, le envio con el objeto command los parametros que necesita el procedimiento almacenado que esta en el servidor sql server 2000, son 3 parametros dos de entrada en los cuales no hay problema y uno de salida, escribo msgbox comando.parameters(3).value
y me arroja una cadena vacia siendo que deberia arrojar un valor, bueno este es el codigo:

-- Procedimientos con parametros de salida .....
Create procedure spAñadirCliente
@Nombre varchar(80),
@id int output
as
set nocount off
insert into clientes values(@nombre)
set @id=@@identity
go
-- para probar que funciona..
Declare @id int
exec spAñadircliente 'Miguel Egea',@id output
print @id
go

-- Ahora desde Visual Basic ...
Option Explicit
Dim oCon As New ADODB.Connection
Dim oCmd As ADODB.Command


Private Sub cmdAñadirCliente_Click()
Dim lsNombre As String
Dim lnNumero As Long

lsNombre = InputBox("Introduzca un nombre de cliente", "Añadir clientes")
If lsNombre <> "" Then
msConectar
Set oCmd = New ADODB.Command
oCmd.Parameters.Append oCmd.CreateParameter("Nombre", adVarChar, adParamInput, 80, lsNombre)
oCmd.Parameters.Append oCmd.CreateParameter("id", adInteger, adParamOutput, 3, lnNumero)
oCmd.CommandText = "spAñadirCliente"
oCmd.CommandType = adCmdStoredProc
Set oCmd.ActiveConnection = oCon
oCmd.Execute
MsgBox "El Código es " & oCmd.Parameters(1).Value
msDesconectar
End If
End Sub

Private Sub msConectar()
oCon.Provider = "sqloledb"
oCon.Properties("Data Source").Value = "SUSERVIDOR" ' Ponga aquí el nombre de su servidor
oCon.Properties("Initial Catalog").Value = "SUBASEDEDATOS"
oCon.Properties("User id").Value = "sa" ' o nombre de usuario que desee.
oCon.Properties("Password") = ""
oCon.Open
End Sub

Private Sub msDesconectar()
oCon.Close
End Sub