Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2003
ADN ADN is offline
Registrado
 
Registrado: jul 2003
Posts: 9
Poder: 0
ADN Va por buen camino
Question 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!
Responder Con Cita
  #2  
Antiguo 28-07-2003
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 28-07-2003
ADN ADN is offline
Registrado
 
Registrado: jul 2003
Posts: 9
Poder: 0
ADN Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 28-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Prueba con una variable

Código:
var
  str : string;
begin
  str := 'fecha = ''25/07/2003''';
  tabla.Filter := str;
  tabla.Filtered := True;
end;
No se, recuerdo que a veces tube problemas al aplicar filtros asi directamente y se solucionaron asignandole una variable.

Otra alternativa seria hacerlo con una Query (si no representara muchos cambios).

Y otra alternativa seria programar el evento OnFilterRecord

Espero te sirva
Responder Con Cita
  #5  
Antiguo 28-07-2003
ADN ADN is offline
Registrado
 
Registrado: jul 2003
Posts: 9
Poder: 0
ADN Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 28-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 28-07-2003
ADN ADN is offline
Registrado
 
Registrado: jul 2003
Posts: 9
Poder: 0
ADN Va por buen camino
El formato yyyy-MM-dd me funciona perfectamente sobre consultas, efectivamente, pero no funciona al filtrar directamente el dataset mediante la propiedad Filter.
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 22:58:01.


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