Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 20
JuanErasmo Va por buen camino
Como filtrar un campo tipo Date en una Tabla?

Buenas Tardes amigos.
Necesito filtrar una tabla entre fechas por medio de Dos Date Time Pickers
Lo hago así:

AnsiString Filtro="FECHA_EXAMEN >= '"+DateToStr(DateDesde->Date)+"'and FECHA_EXAMEN<= '"+DateToStr(DateHasta->Date)+"'";

IBTable1->Filter=Filtro;
IBTable1->Filtered=true;

pero me sale un error asi:

EIBInterbase error: 'conversion error from string "19/12/2005"';

y no se que es......
El formato de la fecha esta igual.....
pero hay algo que esta mal......

Podrian Ayudarme?
Gracias
Responder Con Cita
  #2  
Antiguo 20-12-2005
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 146
Poder: 20
aledieb Va por buen camino
El problema es que estas comparando un campo date con un campo string, te recomiendo que cambies el IBTable por un IBQuery ó IBDataSet y utilizes una consulta SQL parametrizada, es mucho más rápido y con el IBDataSet te evitas utilizar un IBUpdate.

Espero que te sirva, Suerte
__________________
Suerte
Alejandro
Responder Con Cita
  #3  
Antiguo 20-12-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 20
JuanErasmo Va por buen camino
El error se presenta cuando el número excede los 12.

por ejemplo desde 11/12/2005 hasta 12/12/2005 funciona el filtro.

pero desde 19/11/2005 hasta 12/12/2005 no funciona.

EIBInterbaseError 'conversion error from string 19/012005'

Alguien sabe porque puede ocurrir esto?

Gracias por su respuesta.

PD: No soy muy habil utilizando el IBQuery, por lo que prefiero IBTable->Filter
y sé que se puede lograr con este componente!
Responder Con Cita
  #4  
Antiguo 20-12-2005
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 146
Poder: 20
aledieb Va por buen camino
Cita:
Empezado por JuanErasmo
El error se presenta cuando el número excede los 12.

por ejemplo desde 11/12/2005 hasta 12/12/2005 funciona el filtro.

pero desde 19/11/2005 hasta 12/12/2005 no funciona.

EIBInterbaseError 'conversion error from string 19/012005'

...
El problema es el formato de fecha proba cambiando a mes/dia/año, el formato de USA (creo que es ese)
__________________
Suerte
Alejandro
Responder Con Cita
  #5  
Antiguo 20-12-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 20
JuanErasmo Va por buen camino
Hola otra vez soy yo.....

ya le cambié el formato y me sale el siguiente error, igual cuando se pasa de 12, pero ya es distinto dice lo siguiente:
"12/19/2005 is not a valid date and time"...
Que puede ser ahora????
Gracias
Responder Con Cita
  #6  
Antiguo 20-12-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 20
JuanErasmo Va por buen camino
Ya lo solucioné muchas gracias por tu ayuda.
Pero tuve que cambiarle la configuración de mi equipo en:

Configuracion regional y de idioma a USA!!!!

como puedo cambiar la configuracion regional por código?

Gracasi
Responder Con Cita
  #7  
Antiguo 21-12-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
En vez de cambiar el idioma, tendrias que intentar ver cual es el error y solucionarlo. Si ya has probado a cambiar el formato de fecha del componente, pq el error que dices sospechosamente suena a eso..., yo probaria a hacer la siguiente consulta parametrizada:

Código:
Consulta->SQL->Clear();
Consulta->SQL->Add("SELECT * FROM Tu_tabla WHERE campo_fecha>=:a;");
Consulta->Params->Items[0]->AsString = DateTimePicker->Date;
Consulta->ExecSQL();
Consulta->Active=true;
A ver que tal...
__________________
Un saludo

Antonio
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 02:01:12.


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