DataReader y ReturnValue - URGENTE

10/03/2005 - 22:13 por Alejandro | Informe spam
Buenas gente, como siempre despues de probar y probar no me queda otra que
preguntar, ya se me acabaron las opciones, aunque muchas no hay.
La cosa es asi: yo ejecuto un SP, que me devuelve 0 si hay datos que
consultar, o algun otro valor (1,2,etc) dependiendo del caso.

Vamos a poner un ejemplo sencillo:
Tengo un SP que consulta una tabla, que como valor de retorno es 0 si hay
datos, y 1 si no hay, ok? Ojo, que cuando dijo retorno es que el SP sale con
"return" y algun numero.

El sp seria algo asi:

ALTER PROCEDURE GetListaCuentas
@Id_Persona int,
@TipoCuenta varchar(10)
AS

begin

IF NOT EXISTS(SELECT Password FROM Usuarios where Usuarios.Id_Persona =
@Id_Persona)
return 1
else
begin
select NumeroCuenta, TipoCuenta, Moneda
from Cuentas
where Cuentas.Id_Persona = @Id_Persona
AND Cuentas.TipoCuenta = @TipoCuenta

return 0
end
End

En el caso de que no haya datos, joya sale con return = 1 verifico el codigo
que me devuelve desde c# sin ningun problema.

El problema esta cuando si hay datos, seria la parte del else del ejemplo.
Es este caso me llegan los datos a c# pero el valor de retorno no llega, es
como que hace el select y se corta ahi, cuando consulto el parametro que
tiene el valor de retorno, "error!".

Los parametros al comando estan seteados como corresponde, es decir la
direccion de cada parametro como input o como returnvalue, segun corresponda.

Lo segi con un Profiler del SQL y se ejecuta bien, es decir que pasa por
donde tiene que pasar, ejecuta hasta el return en ambos casos.

Se que se puede hacer diferente, pero hay otros SP que no y la interfaz que
tengo que respetar entre el la capa de acceso a datos y el SQL server es
esta. Ademas necesito el ExecuteReader justamente pq espero resgitros.

Espero sus comentarios.
Saludos y desde ya muchas gracias!!
 

Preguntas similares