Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Busqueda avanzada en un TClientDataset (https://www.clubdelphi.com/foros/showthread.php?t=62659)

Cecilio 07-01-2009 13:11:45

Busqueda avanzada en un TClientDataset
 
Hola.

Siguiendo las instrucciones de un libro he creado una primera aplicacíon de agenda usando como base de datos un TClientDataSet.

Los datos se guardan en formato xml y va muy bien.

La pega es que me gustaría hacer busquedas del tipo sql usando "Like" para buscar algo en cualquier posición de un campo, y no solo lo que empiece por algo.

¿ como se puede hacer ? (si se puede)

droguerman 07-01-2009 14:39:14

has probado usar filter?

juanelo 07-01-2009 17:52:56

Yo diria, si has probado usar una base de datos.
Saludos

Caro 07-01-2009 18:24:55

Hola, como te dice drogerman puedes utilizar filter y Like.

Código Delphi [-]
  ClientDataSet.Filter := 'Campo Like '+QuotedStr('%'+Edit1.Text+'%');

Saluditos

Cecilio 07-01-2009 21:14:47

Cita:

Empezado por juanelo (Mensaje 333656)
Yo diria, si has probado usar una base de datos.
Saludos

he usado bases de datos desde hace muchos años, pero no en delphi ni ningun lenguaje parecido. Interbase, MySql, paradox, etc..

Cecilio 07-01-2009 21:15:26

Cita:

Empezado por Caro (Mensaje 333662)
Hola, como te dice drogerman puedes utilizar filter y Like.

Código Delphi [-] ClientDataSet.Filter := 'Campo Like '+QuotedStr('%'+Edit1.Text+'%');


Saluditos

Muuchas gracias.

juanelo 07-01-2009 23:29:42

Cita:

Empezado por Cecilio (Mensaje 333702)
he usado bases de datos desde hace muchos años, pero no en delphi ni ningun lenguaje parecido. Interbase, MySql, paradox, etc..

Pues a no ser que la aplicacion no lo amerite, yo usaria una base de datos como firebird (la embeded si la aplicacion es pequeña y monousuario), para realizar querys.
Saludos

cheche358 29-10-2010 04:57:31

Cita:

Empezado por Caro (Mensaje 333662)
Hola, como te dice drogerman puedes utilizar filter y Like.

Código Delphi [-] ClientDataSet.Filter := 'Campo Like '+QuotedStr('%'+Edit1.Text+'%');


Saluditos

Perdon pero llego tarde a la fiesta...

Si alguien pudiese explicar mejor este codigo...?

Quien es "Campo Like" ?

Donde iria este código: OnChange del Edit1? OnFilterRecord del ClientDataSet?

Al González 29-10-2010 06:27:59

Cita:

Empezado por cheche358 (Mensaje 380814)
Perdon pero llego tarde a la fiesta...

Si alguien pudiese explicar mejor este codigo...?

Quien es "Campo Like" ?

Donde iria este código: OnChange del Edit1? OnFilterRecord del ClientDataSet?

Eres el segundo Cheché que conozco. :p

Campo = Un campo cualquiera del conjunto de datos (data set).

Like = Una palabra reservada usada para indicar la condición de que una cadena de caracteres sea como (like) otra.

El uso de la propiedad Filter es básicamente:

Código Delphi [-]
ConjuntoDeDatos.Filter := ExpresionFiltroAUsar;
ConjuntoDeDatos.Filtered := True;

Al hacer eso, el conjunto de datos mostrará solamente los registros que cumplan con los criterios del filtro dado.

Si tienes más dudas pregunta con confianza, pero si el tema deriva en otro anímate a abrir otro hilo de discusión. Tu participación es bienvenida. :)

cheche358 29-10-2010 06:44:49

jejeje gracias por responder Al...

Como aclaratoria; preguntaba por la aplicacion del codigo de filtrado en estos eventos porque me gusta utilizar lo que muchos llaman "busquedas incrementales", es decir, ir filtrando automaticamente la tabla mientras se escribe en el Edit de busqueda y asi lo he hecho y funciona a la perfeccion.

Me considero todavia un novato asi que no se si es apropiado lo que voy a preguntar:

Estos métodos de busqueda son mas propios de SQL?

Estoy trabajando actualmente con tablas en DBISAM, se puede implementar sin mayores problemas igual en tablas de escritorio?

willianrei 29-10-2010 20:22:59

BD Firebird
 
Hola Muchachos!

Yo estoy con un gran problema con firebird. Estoy haciendo una consulta que trae 30 registros. Muy bien. Cuando hago de un sistema delphi me trae 28 registros con la misma consulta y parámetros.
Que puede ser?
Si alguna persona ha tenido esto como problema, necesito su solución.


Saludos....


La franja horaria es GMT +2. Ahora son las 00:46:20.

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