[Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no tiene errores aparentes

Maxi maximiliano.duarte en gmail.com
Vie Jun 26 17:25:33 CEST 2015


Ismael, como te explico para que entiendas!!!

Si uso un gestor como SQL manager for interbase & firebird, flamerobin
o cualquiera. Si trae datos y si se cumplen las condiciones.

El control de sqlquery de lazarus NO trae datos, de otro entorno si trae


El día 26 de junio de 2015, 12:08, Ismael L. Donis Garcia
<slibre en citricos.co.cu> escribió:
> Maxi probaste la consulta última que te mandé? La de hoy.
>
> La verdad Maxi que no te entiendo bien, Si la consulta está bien hecha y no
> trae datos es porque los datos no cumplen la condición del filtro que estás
> planteando. Por lo que el error no está en la consulta SINO en la forma que
> tu has planteado la consulta para los datos que quieres optener.
>
> Por eso lo único que puedo hacerte para ayudarte es que me pases UNA MUESTRA
> pequeña de los datos al pribado y lo que tu necesitas optener producto de la
> consulta para poderte hacer bien la consulta.
>
> Por mi parte no puedo hacer nada más por ayudarte.
>
> Saludos Reiterados
> ========
> | ISMAEL |
> ========
> Only for the small landowners and Cubans companies
> Website: www.sisconge.byethost15.com
>              www.sisconge.hol.es
> ----- Original Message ----- From: "Maxi" <maximiliano.duarte en gmail.com>
> To: "Spanish version of Lazarus List"
> <lazarus-es en lists.lazarus.freepascal.org>
> Sent: Friday, June 26, 2015 10:55 AM
> Subject: Re: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no
> tiene errores aparentes
>
>
>
> Gracias Jose.
> La consulta si bien el case es reemplazable, tu consulta hace lo mismo
> que la que plantee yo y tarda 1 segundo mas que la mia.
> Esta consulta es rebuscada por como almacenana los datos. El que
> desarrollo esto hizo que los datos sean dinamicos al momento de cargar
> haciendo que en cada registro inserte informacion que despues en
> pantalla se convierte en un control, edit,memo,listbox, etc.
> Como no registra un ingreso y egreso del paciente en un mismo registro
> sino como practicas es que tengo que ir buscando para adelante.
>
>
> y el problema NO ES LA CONSULTA, ya lo dije varias veces. El error es
> en el componente con el =
> le cambio el = por <> y si trae datos
>
>
> El día 26 de junio de 2015, 4:14, Jose antonio Cuello Principal
> <jcuello en artextrading.com> escribió:
>>
>> Si hace Select x.* from (...)
>>
>> te puedes ahorrar ese select y poner directamente el contenido del from
>> puesto que te estás trayendo todos los campos de la subselect, por lo que
>> directamente
>>
>> Select Distinct ....
>>
>> debe traerte el mismo resultado.
>>
>> Otra cosa es, "case when R.Practicas = (..) as Ingreso" para traerte el
>> campo R.FECHAPRACTICA, luego haces "where R.Practicas = (...)" por lo que el
>> case siempre se cumple y trae el campo R.FECHAPRACTICA. En este caso sobra
>> el case, directamente traerse el campo R.FECHAPRACTICA.
>>
>> Este mismo caso se puede aplicar al siguiente case, pudiendo simplificarse
>> en un select first, en vez de un select Min. Será más rápido el first al no
>> tener que procesar todos los registros y ahorrando el Cast de conversión de
>> tipo.
>>
>> En el segundo subselect, a los campos le faltan los alias de la vista
>> (VW_HISTORIASCLINICAS SE), puede no ser importante, pero en este caso que
>> siempre enlazamos con la misma vista y los campos se repiten podemos evitar
>> problemas de ambigüedad.
>>
>> Con todo esto me queda la siguiente select, espero sea más sencillo
>> encontrar el problema.
>>
>>
>> select DISTINCT r.CUENTA, R.NOMBRE, R.OBRASOCIAL, R.NROHC,
>> R.FECHAPRACTICA,
>>
>>                 (Select first 1 E.FECHAPRACTICA
>>                    from VW_HISTORIASCLINICAS E
>>                   where E.CUENTA = R.CUENTA
>>                     and E.FECHAPRACTICA >= R.FECHAPRACTICA
>>                     and E.Practicas = 'Egreso de internación'
>>                   order by E.FECHAPRACTICA ASC) as Egreso,
>>
>>                 (Select first 1 (case when SE.CODIGOPRACTICA = 'SEC_CAMA'
>> then SE.DETALLEPRACTICA else null end) as sector
>>                    from VW_HISTORIASCLINICAS SE
>>                   where SE.CUENTA = R.CUENTA
>>                     and SE.FECHAPRACTICA >= R.FECHAPRACTICA
>>                     and SE.Practicas = 'Sector'
>>                   order by SE.FECHAPRACTICA desc) as Sector
>>
>>  from VW_HISTORIASCLINICAS R
>>
>> where R.Practicas = 'Recepción internacion'
>>
>>
>> Un saludo
>>
>>
>>
>>
>> ----- Mensaje original -----
>> De: "Maxi" <maximiliano.duarte en gmail.com>
>> Para: "Spanish Version of Lazarus List"
>> <lazarus-es en lists.lazarus.freepascal.org>
>> Enviados: Jueves, 25 de Junio 2015 15:51:57
>> Asunto: [Lazarus-es] Zeos y SqlQuery no trae datos la consulta pero no
>> tiene errores aparentes
>>
>> Firebird 2.1.3
>> Lazarus 1.4.0 FCP 2.6.4
>> ZeosLib 7.1.4 estable
>>
>> Tengo una consulta medio rara por como esta organizado el
>> almacenamiento (no es mi base aclaro) la consulta funciona en otros
>> manejadores de datos sin problemas pero en el ide de Lazarus no trae
>> datos pero no da error en la consulta
>>
>> Creo que sobreinterpreta o prepara la consulta y algo no le gusta a
>> estos controles porque no trae datos si los nombres de los campos.
>> sospecho esto porque en el generador de consultas del componente
>> sqlquery al hacer el chequeo de sintaxis dice que espera una , en una
>> linea
>>
>> No me paso antes con este tipo de consultas.
>>
>> select x.* from
>> (select
>>   DISTINCT
>>   r.CUENTA,
>>   R.NOMBRE,
>>   R.OBRASOCIAL,
>>   case when R.Practicas = 'Recepción internacion' then R.FECHAPRACTICA
>> else null end as Ingreso,
>>   CAST((Select MIN(case when E.Practicas = 'Egreso de internación'
>> then E.FECHAPRACTICA else null end) as Egreso from
>>           VW_HISTORIASCLINICAS E
>>           where E.CUENTA = R.CUENTA and E.FECHAPRACTICA >= R.FECHAPRACTICA
>>           and E.Practicas = 'Egreso de internación'
>>           ) as DATE) as Egreso,
>>   R.NROHC,
>>     (Select first 1 (case when CODIGOPRACTICA = 'SEC_CAMA' then
>> DETALLEPRACTICA else null end) as sector from
>>           VW_HISTORIASCLINICAS SE
>>           where
>>           SE.CUENTA = R.CUENTA
>>           and
>>           SE.FECHAPRACTICA >= R.FECHAPRACTICA
>>           and SE.Practicas = 'Sector' order by SE.FECHAPRACTICA desc
>>           ) as Sector
>>  from
>>    VW_HISTORIASCLINICAS R
>>  where
>>       R.Practicas = 'Recepción internacion') x
>>  where x.egreso is null
>>
>> --
>> El que pregunta aprende, y el que contesta aprende a responder.
>>
>> No a la obsolecencia programada:
>>
>> http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
>>
>> Linux User #495070
>> http://domonetic.com/blog
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>> --
>> José Antonio Cuello
>> Dpto. Informatica
>> Artex Trading sa
>> Gold Football sl
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
>
> --
> El que pregunta aprende, y el que contesta aprende a responder.
>
> No a la obsolecencia programada:
> http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
>
> Linux User #495070
> http://domonetic.com/blog
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es



-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list