• Lunes 6 de Abril de 2020, 18:57

Autor Tema:  No Ejecuta Bien Los Procedimientos Almacenados  (Leído 645 veces)

pino79

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
No Ejecuta Bien Los Procedimientos Almacenados
« en: Miércoles 8 de Agosto de 2007, 10:04 »
0
Buenas,
  No se si esta pregunta corresponde a este foro, pero allá va.
  Resulta que tengo un Proyecto en C# .NET conectado por ODBC con una BD en SQL Server Express 2005. Para recuperar los datos ejecuto una serie de procedimientos almacenados, todos ellos probados y ejecutados correctamente.
  Ahora estoy integrando informes con Crystal Reports para .NET y quiero acceder a una serie de procedimientos. Esto también lo hace bien pero cuando tengo un procedimiento del tipo:

if @valor=0 select * from TABLA1
if @valor=1 select * from TABLA2
if @valor=2 select * from TABLA3

siempre me devuelve la ultima consulta aunque le pase el valor del parámetro 0 o 1.

¿Alguien sabe por qué?

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: No Ejecuta Bien Los Procedimientos Almacenados
« Respuesta #1 en: Miércoles 8 de Agosto de 2007, 23:44 »
0
Pon un punto de interrupcion luego de la variable valor y observa que valor toma esa variable...

Quizá estás haciendo una mala asignación.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

pino79

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: No Ejecuta Bien Los Procedimientos Almacenados
« Respuesta #2 en: Viernes 10 de Agosto de 2007, 09:26 »
0
Ese código es el del procedimiento almacenado en SQL Server, con lo que no puedo poner un punto de interrupción. Y como el problema ocurre cuando selecciono el procedimiento por el asistente no puedo hacer nada al respecto.

Me está volviendo loco porque el procedimiento almacenado está bien construido y probado en llamadas anteriores desde el código de C#, pero lo que es desde el Crystal Reports no va ni por casualidad bien.

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: No Ejecuta Bien Los Procedimientos Almacenados
« Respuesta #3 en: Viernes 10 de Agosto de 2007, 16:37 »
0
No se bien que estará pasando, pero podrias colocarlo de la siguiente manera :

Código: Text
  1. if @valor='0' select * from TABLA1
  2. if @valor='1' select * from TABLA2
  3. if @valor='2' select * from TABLA3
  4.  

Con apóstrofes.

Lo otro si solo te muestra el ultimo valor, es porq quizá no alcanza a mostrar los otros y los sobre escribe. Porque es lo que se me ocurre, que pasa por todos, independiente del valor, y se queda con el ultimo asignado.

También si es que es posible, separar con paréntesis y utilizar ; despues de una sentencia SQL.

Suerte.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]