Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2005
pepitu pepitu is offline
Miembro
 
Registrado: sep 2005
Posts: 25
Poder: 0
pepitu Va por buen camino
Consultar fechas en firebird (SQL)

Tras buscar e intentar casi todas las "animaladas" que estoy seguro que puede sufrir delphi...nuevamente recurro a este foro.
Estoy con IBX y firebird.
El problema: tengo un combobox con los campos de una base de datos y un edit en el que introduzco el texto a buscar (lo capturo como 'Texto').
Detecto (según el campo escogido en el Combox) el tipo de dato a buscar introducido en el edit.
Si el campo es de tipo char o varchar uso:
Texto:=texto+'%';
SelectSQL.Add(' WHERE CAMPO LIKE ' + QuotedStr(Texto));
Y me realiza correctamente la búsqueda.

El problema está en las fechas que no consigo realizar la búsqueda correctamente.
Las "animaladas" probadas son del tipo:
- SelectSQL.Add(' WHERE FECHA = ' + StrToDate(Texto)); //da error
-Texto:=StrToDate(Texto);
SelectSQL.Add(' WHERE FECHA = ' + QuotedStr(Texto)); //da error

-He probado de meter la fecha entre comillas dobles, simples, sin comillas, dígitos separados por puntos, etc...
He usado IBExport y veo que el formato de la fecha es dd/mm/yyyy (en Options/Environement/Grid/Display...es el mismo)

¿Como se hace?
¿Pasando parámetros?¿Como?
Responder Con Cita
  #2  
Antiguo 28-09-2005
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Código:
         Query.SQL.Add('and Fecha >= :Fecha');
         Query.ParamByName('Fecha').AsDate := DateEditFecha.Date;
Utiliza parametros, si es un edit tendras que hacer una conversion strtodate()
Si utilizas un DateEdit, como te he puesto.

Otra cosa que tienes que tener en cuenta, es que si el campo de la base de datos es timestamp tendras que poner between fecha and fecha + un dia.

Si no entiendes lo que te comento, lo dices y me extiendo mas.

Saludos.
Responder Con Cita
  #3  
Antiguo 28-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Si pasas la fecha como cadena ten pendiente que el formato debe ser mm/dd/yyyy osea formato gringo
Código SQL [-]
WHERE FECHA = '12/31/2005';
Se octendria con
Código Delphi [-]
  //LA fecha real es 31/12/2005 31 de diciembre del 2005
  //Si la fecha la introduces a mano
  Texto := '12/31/2005';
  
  //Si la fecha biene desde un componente o en formato no gringo
  Texto := formatDateTime('mm/dd/yyyy', Fecha);
  Texto := Format('WHERE FECHA = ''%s''', [Texto]);
Aunque la opcion que te dieron anteriormente es perfecta. Asi que tu decides cual usar
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #4  
Antiguo 28-09-2005
pepitu pepitu is offline
Miembro
 
Registrado: sep 2005
Posts: 25
Poder: 0
pepitu Va por buen camino
Solucionado

He probado ambas formas y las dos me lo han solucionado.

Quiero hacer hincapié en mis agradecimientos hacia quién ayuda a un novato como yo. No tan solo es lo que hace engrandecer un foro sino a la persona cuya forma de ser lo permite o lo hace posible.

Muy agradecido.
Responder Con Cita
  #5  
Antiguo 28-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Perfecto.

Esa es la manera no tanto por las gracias. Sino para que uno sepa que ya todo esta solucionado. Por hay muchos casos en los cuales el problema esta resulto y son incapaces de decir ya me funciono eso se dbe hacer para que las personas no pierdan su tiempo en algo que ya esat solucionado.

Pero gracia spor las gracias valga la redundancia
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 28-09-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Bien dicho, aunque el foro es altruista y los agradecimientos se suponen, al menos es conveniente que se haga publica cual de las propuestas solucionó el problema y si se opta por una y no por la otra explicar por qué.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 28-09-2005
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Es de agradecer tu agradecimiento y valga la redundancia (no todos lo hacen).

Si tienes mas dudas, sobre todo con mi respuesta (que es un poco corta y a lo mejor poco comprensible por falta de tiempo), plantealas.

Saludos.
Responder Con Cita
  #8  
Antiguo 28-09-2005
pepitu pepitu is offline
Miembro
 
Registrado: sep 2005
Posts: 25
Poder: 0
pepitu Va por buen camino
Qué menos que agradeceros...

Iba a no escribir más en este hilo...pero cuando uno se siente en deuda por la ayuda recibida...qué menos que prestar atención

De todas formas....no os alejéis demasiado....tengo muchas cosas en el tintero...
Pero tranquilos.....antes de hacer cualquier pregunta al foro me paso horas buscando la respuesta.
Soy supernovato en delphi y firebird (ya se nota por mis dudas, no?) y me meto en cosas cuando aun me falta una base inicial....

Cahp...lo he entendido bien, quédate tranquilo.

Saludos
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


La franja horaria es GMT +2. Ahora son las 09:32:16.


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