FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Otro problema relacionado con filtros (urgente)
Hola,
perdonad que haga otra pregunta más sobre filtros, pero es que no encuentro la solución al problema y voy contra reloj. Tengo un objeto TTable al que intento filtrar por fechas, y pese a que la sintaxis parece correcta, siempre me salta una excepción que dice 'Operation not applicable'. El filtrado sería algo de tipo: tabla.Filter := 'fecha = ''25/07/2003'''; tabla.Filtered := True; La tabla es de una base de datos MySQL. Ayudadme, please! |
#2
|
||||
|
||||
Hola,
supongo que debes cambiar el carácter " que utilizas para delimitar la data por el cárácter ' que es el que se utiliza en Delphi y SQL. Si quieres puedes utilizar la función de Delphi QuotedStr que lo que hace es precisamente "encomillar" una cadena (por ejemplo si le pasas HOLA te devuelve 'HOLA') Debes verificar, además, que el formato de fecha del filtro es admitido por el SGBD. Suerte. |
#3
|
|||
|
|||
No he usado el símbolo " (chr 34), sino dos veces ', lo que pasa es que si lo pongo seguidos se ven así: ''
Intenta seleccionar con el ratón en mi post anterior y verás como son dos caracteres independientes, y no uno solo :-) En cuanto al formato de fecha, este es correcto, y de hecho es el único que me admite, ya que he probado todas las variantes posibles de tipo dd/MM/yy, MM/dd/yy, yyyy-MM-dd, etc., etc., etc. con los cuáles obtengo otro error diferente: 'Date format not valid'. El formato usado es el único que no me da ese error, pero me da el error que comenté al principio. |
#4
|
|||
|
|||
Prueba con una variable
Código:
var str : string; begin str := 'fecha = ''25/07/2003'''; tabla.Filter := str; tabla.Filtered := True; end; Otra alternativa seria hacerlo con una Query (si no representara muchos cambios). Y otra alternativa seria programar el evento OnFilterRecord Espero te sirva |
#5
|
|||
|
|||
Lo de asignarla mediante una variable lo había probado ya. Pero no tiene nada que ver. De hecho, el mensaje de error se me lanza como una excepción de tipo eBDEngineError, así que depende directamente de BDE.
Al final para poder salir del paso me lo he tenido que currar con un TQuery, aunque me hubiese gustado haberlo solucionado como dios manda. Gracias de todos modos. |
#6
|
|||
|
|||
si es del BDE, entonces yo diria que es el formato de fecha que le estas pasando. De echo, acabo de hacer una consulta sobre mySQL poniendo en formato de fecha que indicas dd/mm/aaaa y me da error, en cambio, con el formato aaaa-mm-dd me ha funcionado correctamente
Pruebalo a ver |
#7
|
|||
|
|||
El formato yyyy-MM-dd me funciona perfectamente sobre consultas, efectivamente, pero no funciona al filtrar directamente el dataset mediante la propiedad Filter.
|
|
|
|