FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con filter
Estoy usando una base de datos local, y necesito poder filtrar un intervalo de fecha estoy usando las siguientes sentencias:
Form1.table1.filter := 'Fecha >= '+DateTimeToStr(DateTimePicker1.Date)+'And Fecha <= '+DateTimeToStr(DateTimePicker2.Date)+''; = >no funciona con:= con + 'Fecha >= '; con:= con + DateToStr(DateTimePicker1.Date); con:= con + ' And '; con:= con + ' Fecha <= '; con:= con + DateToStr(DateTimePicker2.Date); Form1.table1.filter :=con; = >no funciona Form1.table1.filter := 'Fecha >= ''06/02/2007''And Fecha <= ''07/02/2007'''; = > si funciona Form1.table1.filter := 'Fecha >= '''+DateTimeToStr(DateTimePicker1.Date) + ''''+'And'+'Fecha <= ''' + DateTimeToStr(DateTimePicker2.Date) + ''''; = >no funciona todo con la siguiente linea Form1.table1.filtered := true; Tambien me gustaria saber como puedo obtener la fecha del sistema he buscado y no se he visto fecha y hora solo necesito la fecha. |
#2
|
||||
|
||||
Intentalo asi:
Para lo de la fecha solo debes usar la función Date
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Cita:
Los filtros por alguna razon que desconozco, se tornan un poco lentos, sobre todo cuando la tabla es muy grande, queda a veces mejor usando un query y una sentencia sql. No digo que el filtro no sirva o use, digo que en ciertas ocasiones sobre todo cuando se usan varias tablas a la vez, es mas limpio con un query. Creo que el table trae todo la tabla y luego hace el filtro, el query solo trae el dato que se le pide ahorrando tiempo. Por favor corrijanme. Saludos |
#4
|
||||
|
||||
Hola jhonny
No se como hice para que se citara tu intervencion, no fue mi intencion, pero de todos modos me gustaria saber como se hace, ya que esta salio asi por casualidad. Que teclas aprete? Saludos |
#5
|
||||
|
||||
Cita:
Y si no me hice entender con lo que acabo de decirte pues mira el botoncito que hay en el editor como con una nube de dialogo (como en las caricaturas). Solo es cuestión de seleccionar el texto que quieres citar y presionar ese botón. Ahh, y si no te muestra la barra de herramientas verifica de que tienes activado el editor WYSIWYG en tu perfil de usuario.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 14-02-2007 a las 21:20:23. |
#6
|
||||
|
||||
Gracias jhonny
Tantas veces haciendo cosas y esta me pillo de sorpresa. Saludos |
#7
|
||||
|
||||
Discupen ya habia probado lo que me han dicho en sus comentarios.
Les envio un la captura de la imagenes en cada una de la lineas qye me enviaro, no se pudo hacer la consulta satisfactoriamente. Form1.table1.filter := 'Fecha >= '''+DateToStr(DateTimePicker1.Date) + ''''+'And'+'Fecha <= ''' + DateToStr(DateTimePicker2.Date) + ''''; =sistema.jpg Form1.table1.filter := 'Fecha >= "'+DateToStr(DateTimePicker1.Date)+'"And Fecha <= "'+DateToStr(DateTimePicker2.Date)+'"'; =sistema2.jpg |
#8
|
|||
|
|||
Para que no te enredes con los ''', usa la funcion QuotedStr
Ahora si no te funciona asi, checa el formato de Fecha y hora, quizas el DateToStr te lo devuelva en formato mes,dia año, y por eso no te lo filtra, y no te das cuenta por que son fechas validas. Lo que hago usualmente es poner en el dpr estas dos lineas
para que no se tomen las que trae por default la instalacion de windows.
__________________
Saludos Alfredo |
#9
|
||||
|
||||
Hello ya hice esta prueba de esta sintaxis si funciona:
Form1.table1.filter := 'Fecha = ''' + DateToStr(DateTimePicker1.Date) + ''''; Esta sintasixis no manca eeror de formato pues da fecha y hora. Form1.table1.filter := 'Fecha >= '+QuotedStr(DateTimeToStr(DateTimePicker1.Date))+' And Fecha <= '+QuotedStr(DateTimeToStr(DateTimePicker2.Date)); |
#10
|
||||
|
||||
Coloca tambien los respectivos parentesis asi:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#11
|
|||
|
|||
Cita:
¿si tira error? Con la última dice que funciones arismeticas no son compatibles con el filtrado de tablas. ¿Lo dice por los "/"? ¿por qué se soluciona con esas comas demás? Saludos |
#12
|
|||
|
|||
por que la propiedad filtro no es mas que una cadena que despues es interpretada para evaluar la condicion que tu hayas definido, por ejemplo
esto : es equivalente a esto otro, lo cual puede ser interpretado erroneamente como una operacion aritmetica
en cambio si le agregas las comillas, seria como si asignaras algo parecido a esto lo cual ya podra ser interpretado correctamente como una fecha. Esto ya es correcto, pero para no enredarme con tantas comillas, prefiero usar la funcion QuotedStr de esta forma :
__________________
Saludos Alfredo |
#13
|
||||
|
||||
...y con Query
Si quisiera realizar un filtro parecido a este usando un Query... datos que luego se puedan eliminar usando otro Query , como seria...???
Si dicen que con la tabla es lento, existe una forma de acelerarlo...??? |
#14
|
||||
|
||||
Los Ttable y sus derivados son lentos porque te traen tooodos los registros a parte de otras cosillas. Lo mejor es utilizar los TQuery.
Para filtrar es lo mas facil, un ejemplo..: Suerte
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! Última edición por vtdeleon fecha: 27-06-2007 a las 04:55:34. |
#15
|
|||
|
|||
Amigo, vtdeleon, permite que te corriga un pequeño gazapo, la funcion deberia ser StrTodate, no DateToStr.
__________________
Saludos Alfredo |
#16
|
||||
|
||||
Oops, Si. Gracias jacanche.
Lo corregiré
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Filter vs consulta SQL | nachito_tuc | SQL | 6 | 25-12-2006 00:34:28 |
Locate o Filter | jre740824 | SQL | 3 | 17-11-2006 11:17:35 |
Uso de filter | CONY | Conexión con bases de datos | 1 | 02-08-2006 22:48:23 |
Filter en IBQuery | StartKill | Firebird e Interbase | 1 | 27-08-2005 06:51:06 |
Duda con filter... | superhopi | OOP | 1 | 21-05-2003 10:00:04 |
|