Paramteros de Salida de Stored Procedure

23/02/2006 - 23:42 por Alicia | Informe spam
Hola, tengo este código:

Public Sub Ingreso(ByRef OPERFIL As oPerfil)
Dim miConexion As New SqlConnection
miConexion.ConnectionString = "Persist Security
Info=False;Integrated
Security=SSPI;databaseÛGAMA-SEGURIDAD;server=DLT-XD4SAC0N1NN;"

Dim miComando As New SqlCommand("spIngreso_Perfil", miConexion)
miComando.CommandType = CommandType.StoredProcedure

miComando.Parameters.Add(New SqlParameter("@Perfil",
SqlDbType.VarChar, 32))
miComando.Parameters("@Perfil").Value = OPERFIL.Get_Perfil

miComando.Parameters.Add(New SqlParameter("@ID_Registro",
SqlDbType.Int, 9))
miComando.Parameters("ID_Registro").Direction =
ParameterDirection.Output

miConexion.Open()
Dim ID_Registro As Double

miComando.ExecuteNonQuery()
'Obtengo el ID del Registro insertado
ID_Registro = CType(miComando.Parameters("@ID_Registro").Value,
Double)

miConexion.Close()

Pero cuando ejecuto esto me da este mensaje de error
"SQLParameter no contiene SQLParameter con PArameter Name 'ID_Resgitro' "

El Código del stored es:
CREATE PROCEDURE [dbo].[spIngreso_Perfil]
@Perfil varchar(32),
@ID_Registro numeric(9) output

AS

declare
@ID_Perfil numeric(9)

BEGIN TRANSACTION

if (Select MAX(ID_Perfil) from Perfiles) is not null

select @ID_Perfil = (Select MAX(ID_Perfil) from Perfiles) +1
else
select @ID_Perfil = 1

Insert Into
Perfiles (ID_Perfil, Perfil, Baja)
Values (@ID_Perfil, @Perfil, 0)

IF @@error <> 0
begin
ROLLBACK TRANSACTION
Select @ID_Registro = 0
return
end

Select @ID_Registro = @ID_Perfil

COMMIT TRANSACTION
GO

Alguien me puede decir que estoy haciendo mal? o algún ejemplo de parametros
de salida, ya que en la ayuda me es dificil encontrar lo que busco y no
encontre ninguno con parametros de salida, sólo de retorno de valor.-

Uso VBNet Enterprice 2003
Gracias y hasta pronto

Preguntas similare

Leer las respuestas

#6 Claudia Honda
27/06/2006 - 22:23 | Informe spam
Alicia,
Tengo el mismo problema, con la diferencia que estoy trabajando con
stored procedures almacenados en una base de datos Informix. Trate de definir
el parameto como return_value con @ y sin @, y de ninguna forma pude obtener
el return del store procedure.
Tú has podido resolverlo de alguna forma?

Alguien podría decirme como hacerlo.

Desde ya muchísimas gracias, hasta pronto

"Alicia" wrote:

Hola, tengo este código:

Public Sub Ingreso(ByRef OPERFIL As oPerfil)
Dim miConexion As New SqlConnection
miConexion.ConnectionString = "Persist Security
Info=False;Integrated
Security=SSPI;databaseÛGAMA-SEGURIDAD;server=DLT-XD4SAC0N1NN;"

Dim miComando As New SqlCommand("spIngreso_Perfil", miConexion)
miComando.CommandType = CommandType.StoredProcedure

miComando.Parameters.Add(New SqlParameter("@Perfil",
SqlDbType.VarChar, 32))
miComando.Parameters("@Perfil").Value = OPERFIL.Get_Perfil

miComando.Parameters.Add(New SqlParameter("@ID_Registro",
SqlDbType.Int, 9))
miComando.Parameters("ID_Registro").Direction =
ParameterDirection.Output

miConexion.Open()
Dim ID_Registro As Double

miComando.ExecuteNonQuery()
'Obtengo el ID del Registro insertado
ID_Registro = CType(miComando.Parameters("@ID_Registro").Value,
Double)

miConexion.Close()

Pero cuando ejecuto esto me da este mensaje de error
"SQLParameter no contiene SQLParameter con PArameter Name 'ID_Resgitro' "

El Código del stored es:
CREATE PROCEDURE [dbo].[spIngreso_Perfil]
@Perfil varchar(32),
@ID_Registro numeric(9) output

AS

declare
@ID_Perfil numeric(9)

BEGIN TRANSACTION

if (Select MAX(ID_Perfil) from Perfiles) is not null

select @ID_Perfil = (Select MAX(ID_Perfil) from Perfiles) +1
else
select @ID_Perfil = 1

Insert Into
Perfiles (ID_Perfil, Perfil, Baja)
Values (@ID_Perfil, @Perfil, 0)

IF @@error <> 0
begin
ROLLBACK TRANSACTION
Select @ID_Registro = 0
return
end

Select @ID_Registro = @ID_Perfil

COMMIT TRANSACTION
GO

Alguien me puede decir que estoy haciendo mal? o algún ejemplo de parametros
de salida, ya que en la ayuda me es dificil encontrar lo que busco y no
encontre ninguno con parametros de salida, sólo de retorno de valor.-

Uso VBNet Enterprice 2003
Gracias y hasta pronto





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida