Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2011
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
Hola Cabanyaler, porque mejor no planteas tu procedimiento de esta forma.
Código SQL [-]
CREATE PROCEDURE ADOSP_InventarioArticulos
@TipoInforme int, @Centro_sp varchar(3)
AS
Begin

    Select Distinct *
    from Artic
    where (
              ((Pvp_art = 0) AND
                (Centro_Art = @Centro_sp))
               and @TipoInforme = 0
             ) 
         or (
              ((Pvp_art <> 0   )  AND
                (Centro_Art = @Centro_sp))
              and @TipoInforme = 1            
             )
         or (
                (Centro_Art = @Centro_sp and @TipoInforme = 2) 
             )
end
ahora sobre tu procedure creo esta correcto, puede que sea la anidación de if lo que causa el error, pero segun se ve esta correcto.

salu2.
Responder Con Cita
  #2  
Antiguo 21-12-2011
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Thumbs up

Correcto!!!! Gracias.

Ayer por no estar más tiempo estancado con esto, "tiré por la calle del medio" y lo solucioné de otro modo. Pero esta mañana al volver a retomar la tarea he leído tu mensaje abelg y he decido que merecía la pena investigar que pasaba y probar tu sugerencia, además de ser esta más acertada por la simplicidad y quedar más escueta que la mía, y además funciona de maravilla.

¿Donde estaba el fallo? SOLUCIÓN AL CASO:
El fallo no residía, ni en los tipos, ni en el envío de los parámetros, ni mucho menos en cualquiera de los SP diseñados y presentados en este hilo, si no en el propio código del programa.
Por lo visto para que se visualicen los resultados correctamente de la ejecución de un SP que retorna un conjunto de datos mediane cualquier SELECT, los pasos en su ejecución deben ser por este orden:

1) Cierre del ADOSP
2) Asignación de los valores a los parametros
3) Apertura del ADOSP
4) Ejecución del ADOSP


El fallo lo tenía en que no cerraba el ADOSP (me saltaba el 1er paso), por lo que aunque cambiase de parametros y ejecutase otro SELECT según los IF del ADOSP, el conjunto de datos que se mostraban en el lado cliente siempre era el mismo y daba la sensación de no funcionar o siempre ejecutarse el mismo SELECT.
Al cerrar el ADOSP y seguir los pasos enumerados anteriormente, hay que ver lo bien que funciona todo.

MORALEJA DEL CUENTO:

Si !!, se pueden controlar los flujos dentro de los ADOSP en el servidor mediante bifurcaciones IF o CASE si se necesita a partir de valores pasados por parámetro, pero siempre siguiendo el orden de los pasos en azul mencionados.

Gracias a todos y en especial a abelg.
Espero sirva en un futuro a alguien este hilo... como siempre.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
copiando componentes y eventos - Ctrl+C Ctrl-V StartKill Varios 5 20-12-2008 15:42:33
Transact SQL Procedimientos Alamacenados!! Yun-i MS SQL Server 5 10-01-2008 15:33:29
campo validado no acepta ctrl + v ctrl + c vroa74 Varios 0 10-09-2007 17:03:15
delphi 2005 ctrl-c, ctrl-v, ctrl-x zero.ax Varios 3 15-08-2007 16:40:28
Consejo sobre flujo Supermagayin Varios 4 30-08-2006 22:28:27


La franja horaria es GMT +2. Ahora son las 13:03:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi