Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Trabajar con SP desde VB6

Estas en el tema de Trabajar con SP desde VB6 en el foro de SQL Server en Foros del Web. En una aplicacion que estoy desarrollando en VB6, necesito ejecutar un SP que valida al usuario y devuelve un valor y debo tomarlo desde la ...
  #1 (permalink)  
Antiguo 29/11/2007, 11:33
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Trabajar con SP desde VB6

En una aplicacion que estoy desarrollando en VB6, necesito ejecutar un SP que valida al usuario y devuelve un valor y debo tomarlo desde la aplicacion.

el SP es el siguiente (perdon, pero no tomo la identacion):

CREATE PROCEDURE spLogin (@usuario VARCHAR(20),@clave VARCHAR(20), @resultado INT OUTPUT) AS


DECLARE
@NomUsuario VARCHAR(30),
@IdUsuario INT,
@NroIntentos INT,
@bloqueado INT

BEGIN TRANSACTION chklogin

SELECT @bloqueado=bloqueado, @IdUsuario=IdUsuario, @NomUsuario=NomUsuario, @resultado=pwdcompare(@clave, clave, 0) FROM tUsuarios WHERE Nick LIKE @Usuario



IF @@ROWCOUNT > 0
BEGIN
IF @bloqueado=0
BEGIN
IF @resultado=0
BEGIN
INSERT INTO tUsuariosAuditoria (idusuario) VALUES (@idUsuario)
SELECT @NroIntentos=COUNT(idUsuario) FROM tUsuariosAuditoria WHERE idUsuario=@idUsuario
IF @NroIntentos=5
BEGIN
SET @resultado=2
@idUsuario as idusuario, @nomusuario as nomusuario
UPDATE tUsuarios SET bloqueado=1 WHERE idUsuario=@idUsuario


END
END
ELSE
BEGIN
SET @resultado=1
DELETE FROM tUsuariosAuditoria WHERE idUsuario=@idUsuario

END
END
ELSE
BEGIN
SET @resultado=3
END
END
ELSE
BEGIN
SET @resultado=4
END

IF @@ERROR=0
BEGIN
COMMIT TRANSACTION chklogin
END
ELSE
BEGIN
ROLLBACK TRANSACTION chklogin
SET @resultado=0
END

desde VB6 como llamo al SP y como tomo el valor que me devuelve?

Muchas gracias
  #2 (permalink)  
Antiguo 29/11/2007, 12:01
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 5 meses
Puntos: 3
Re: Trabajar con SP desde VB6

una posibilidad es generar un select al final del SP:

Select @resultado

y lo recuperas en VB mediante un recordset

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #3 (permalink)  
Antiguo 30/11/2007, 05:33
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Trabajar con SP desde VB6

Gracias....eso es lo que estabamos haciendo, pero a veces no funciona....
saludos
  #4 (permalink)  
Antiguo 30/11/2007, 07:21
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 5 meses
Puntos: 3
Re: Trabajar con SP desde VB6

mm.. tal vez es por los mensajes de los query. Prueba colocar al principio del SP:
SET NOCOUNT ON
SET ANSI_WARNINGS OFF


de manera que no exista nada más que pueda retornar tu SP más que el "Select @resultado".

Si hay algun mensaje, u otro select más arriba, el VB tomará el primero de ellos y el otro lo ignorará.

Saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #5 (permalink)  
Antiguo 30/11/2007, 08:32
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 3 meses
Puntos: 38
De acuerdo Re: Trabajar con SP desde VB6

Cita:
Iniciado por DongatoAR Ver Mensaje
desde VB6 como llamo al SP y como tomo el valor que me devuelve?

Muchas gracias
Tienes que definir un comando de ADO por ejemplo. y agregarle los parametros correspondientes. Y al de salida lo defines como adParamOutput (salida) para traer el valor.

Yo prefiero el uso de los parametros de salida al recordset....

Aunque supongo que este tema corresponde al foro de VB....ahi te podran dar el detalle...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 11/12/2007, 16:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Trabajar con SP desde VB6

Gracias a todos, pero ya lo habia resuelto de la manera que plantea SIR MATRIX, es decir, utilizando el SET NOCOUNT ON.

Gracias
  #7 (permalink)  
Antiguo 11/12/2007, 17:51
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 8 meses
Puntos: 180
Re: Trabajar con SP desde VB6

La 2a linea, despues del AS, debe ser exactamente SET NOCOUNT ON

AS
BEGIN
SET NOCOUNT ON
......
......
......
END
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:42.