Procedimiento almacenado y Objeto Command de Visual Basic 6.0

joseamesti
19 de Marzo del 2003
Hola, tengo un problema con el objeto command, bueno como verán más abajo el objeto command llama a un procedimiento almacenado que esta en sql server 2000, enviandole 3 parametros, dos parametros de entrada y uno de salida, no tengo problema con los dos parametros de entrada, pero el de salida me debería enviar un valor de respuesta, en esta instrucción:

msgbox comando.parameters(3).value
pero me envia una cadenavacía, bueno acá va el codigo que lo saque como ejemplo de otra pagina web.


-- 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 @[email protected]@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