FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SIGO con Query con ADS - SOLUCIONADO
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
SIGO con Query con ADS - SOLUCIONADO
Posted: Sun May 20, 2012 10:06 PM
Buenas tardes,

Tengo instalado ADS y, hasta ahora, lo uso para hacer consultas en DBF's sobre campos de caracteres y funciona bien, por ej.

Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where NOMBRE like '%JOSE%'


La cuestión es que necesito hacer consultas por fechas, es decir sobre campos tipo date y probé haciendo:

Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA like '%  /  /    %'


y haciendo:

Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA >= '%11/11/2010%' and FECHA <= '%20/02/2012%'


Pero no funciona. Obviamente le estoy errando en la sintáxis. Espero ayuda. Gracias.

Rolando :-)
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 12:38 AM
Hola,

primero defines como quieres que ADS maneje las fechas

Code (fw): Select all Collapse
ADSSETDATEFORMAT("DD/MM/YYYY")


luego intenta como lo estuviste haciendo

saludos

Marcelo
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 09:37 AM
Prueba asi:

Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA >= '2010-11-11' and FECHA <= '2012-02-20'
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 01:36 PM
Gracias a ambos por responder.

Marcelo, hice lo que propones y funcionó bién para buscar una fecha, ej:
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '10/10/2011'


Pero cuando quiero buscar todos los que la fecha esté vacía, no funciona, hago así:
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '  /  /    '


Y no funciona. ¿Cómo debería hacer para localizar por fechas vacías?, gracias.

Rolando :-)
Posts: 132
Joined: Thu Mar 08, 2007 06:12 PM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 01:38 PM

Saludos !

Intenta de esta forma

Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA BEETWEN '2010-11-11' AND FECHA  '2012-02-20'
Harbour / Bcc / MinGW / Fwh 13.9
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 01:51 PM
Cuando la fecha está completa no hay problemas, como ya dije, la encuentra bien.

El problema está cuando quiero crear un array buscando todos los registros cuyo campo "FECHA" no tenga ninguna fecha registrada, cuando esté vacío. Por esto intenté sin éxito
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = '  /  /    '


Necesitaría la forma de buscar campos de date vacíos.

Gracias.

Rolando :-)
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 04:01 PM
Hola,

eso debería ser fácil así

Code (fw): Select all Collapse
select *
from trabajos
where fecha is null


saludos

Marcelo
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: Query con ADS - ayuda
Posted: Mon May 21, 2012 04:32 PM

Gracias Marcelo,

Funcionó bien.

Saludos.

Rolando :D

Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Query con ADS - ayuda
Posted: Tue May 22, 2012 01:33 PM
Otra manera:
Code (fw): Select all Collapse
    Select TALON, NOMBRE, DIRECCION, LOCALIDAD from TRABAJOS where FECHA = {d ''}


Saludos
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: Query con ADS - ayuda
Posted: Tue May 22, 2012 04:33 PM

Gracias Mario y gracias a todos.

Un abrazo.

Rolando :D

Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: SIGO con Query con ADS - ayuda
Posted: Wed May 23, 2012 01:19 PM
Buen día,

Sigo precisando una ayuda.

Tengo que hacer un select de acuerdo con los valores de dos campos logical.

Intenté esto pero no funciona:
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA and not EXTENDIDA


Donde GTIA y EXTENDIDA son dos campos logical y pretendo que se ejecute cuando GTIA sea .t. y EXTENDIDA sea .f.

Seguro que se la saben. Gracias.

Rolando :-)
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: SIGO con Query con ADS - ayuda
Posted: Wed May 23, 2012 01:28 PM
Bueno, parece que luego de unas pruebas logré hacerlo, así funciona:

Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA is not null and EXTENDIDA is null


Saludos.

Rolando :-)
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: SIGO con Query con ADS - ayuda
Posted: Wed May 23, 2012 01:44 PM
La solución sería esta:
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and EXTENDIDA=False


Lo que conseguiste que funcionara significa lo siguiente:
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA is not null and EXTENDIDA is null


GTIA no esta en valor nulo (is not null), osea tiene algún valor sea el que sea
y
EXTENDIDA esta nulo (is null), osea no contiene nada de nada.

Esto me hace pensar que no esta bloqueado que estos campos queden en nulo, por lo que la solución para estos casos es:
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and IsNull(EXTENDIDA, False)=False

o
Code (fw): Select all Collapse
Select TALON, NOMBRE, DIRECCION from TRABAJOS where FINALIZADO IS NULL and GTIA=True and (EXTENDIDA is null or EXTENDIDA=False)


Del campo FINALIZADO no menciono nada porque no explicas que puede contener
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 593
Joined: Sat May 12, 2007 11:47 AM
Re: SIGO con Query con ADS - ayuda
Posted: Wed May 23, 2012 03:24 PM

Fernando,

Gracias por tu respuesta.

El campo FINALIZADO es de date y quiero que se ejecute el select cuando esté vacío.

Respecto de los campos logical, lo voy a usar como me indicas que me parece lo más razonable, aunque de la manera que lo hice obtuve los mismos resultados porque estos campos siempre contienen un estado lógico.

De todos modos pregunté para aprender y eso trato. Muchas gracias.

Saludos.

Rolando :D

Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: SIGO con Query con ADS - ayuda
Posted: Wed May 23, 2012 03:53 PM

Cuidado, no es lo mismo vacío que nulo.

Por ejemplo en un campo texto:
Nulo es que no hay nada
Y Vacío es hay una cadena de caracteres ("") sin nada en su interior.

Equivaldría al valor "NIL" en una variable de (x)Harbour.

En las tablas DBF es lo mismo el valor null y vacio
Pero con tablas ADT no es lo mismo

Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos