FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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! |
#4
|
|||
|
|||
Cita:
__________________
Suerte Alejandro |
#5
|
|||
|
|||
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 |
#6
|
|||
|
|||
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 |
#7
|
||||
|
||||
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;
__________________
Un saludo Antonio |
|
|
|