SQL - SP + update + select

 
Vista:
sin imagen de perfil

SP + update + select

Publicado por SELECTSQL (2 intervenciones) el 08/05/2009 10:11:25
Hola. muy buenas

Mi pregunta es la siguiente.

Desde una aplicación vb6 estoy ejecutando un Procedimiento Almacenado en SQL SERVER 2005 y recuperando los datos en un recordset. Si dentro del procedimiento hago una serie de operaciones y finalmente hago la select, no tengo ningun problema desde vb6 y recojo el recordset, pero si previo justo hacer la select hago un update, la select al vb6 me llega vacia el valor del recordset es EOF.

¿Alguna soluciópn para hacer el update y la que select me devuelva bien?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:SP + update + select

Publicado por roger (93 intervenciones) el 08/05/2009 15:05:07
creo que si o si debes hacer el select al final, no se si el update depende del select y por eso es que lo tienes en ese orden, de todas formas puede poner la pregunta en el foro de VB y de pronto encuentras mas ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SP + update + select

Publicado por pacopaz (143 intervenciones) el 08/05/2009 17:06:32
O también puede ser que lo que hagas antes del select final esté levantando un error. Trata de ejecutar el sp desde la base de datos (no desde la aplicación) y recupera el valor de retorno. Si el valor de retorno es diferente de 0, entonces tienes un problema en el sp. Si el valor de retorno es 0 y te muestra, además, el resultado del select, entonces habrá que checar otras cosas, como el envío de parámetros o tratar de recuperar el valor de retorno desde la aplicación (cosa que parece ser menos sencilla).
Para recuperar el valor de retorno de un sp, utiliza algo como esto:
DECLARE @valor_retorno int
EXEC @valor_retorno = [Procedimiento...]
SELECT 'Valor de Retorno' = @valor_retorno

Donde:
[Procedimiento...]: Es el nombre de tu procedimiento, además de todos sus parámetros. Ej: sp_procedimiento 1, 'a', '20090508', NULL

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:SP + update + select

Publicado por DALSOM (195 intervenciones) el 21/12/2009 16:09:18
HOLA PACO,

PUES HE PROBADO ESO QUE DICES, Y NO ME DIO RESULTADO,
TAMPOCO LO QUE DICE EL QUE ABRIO LA COLA.

TENGO UN SP DE PRUEBA, DIGAMOS SIEX. ESTE SP DEVUELVE SIEMPRE UN SELECT DE UN CAMPO Y UN REGISTRO.

SI HAGO ESTO :

DECLARE @RESULTADO CHAR(50),@IDREG
SET @IDREG = 12

EXEC @RESULTADO = SIEX 'PRUEBA',@IDREG
-- ME DEVUELVE LA CADENA 'ERROR : REGISTRO INEXISTENTE'

SELECT @RESULTADO AS RESULTADO
-- DEVUELVE 0

CUANDO EL ULTIMO SELECT DEBERIA TENER EL VALOR DE LA CADENA
DE ERROR.

TAMPOCO FUNCIONO LO DEL NOCOUNT.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:SP + update + select

Publicado por SELECTSQL (2 intervenciones) el 11/05/2009 09:54:21
Hola, gracias a todos, ya esta solucionado.

Unicamante habia que poner al principio del SP el texto SET NOCOUNT ON.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar