FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Rejilla de registros de tabla filtrados por una condición
Hola.
Quiero presentar una rejilla con los registros de un ttable que cumplan la siguiente condición. Que un determinado substring exista en un campo de tipo blobfield, que contiene texto enriquecido formateado por el componente TDBRichViewEdit (parecido al TDBRichEdit). Para buscar el substring en ese campo necesito utilizar un método (SearchText) del componente. ¿Esto podría hacerlo mediante un ttable que cargue un TDBGrid? Si es así, donde y como tendría que definir la condición para que se produzca el filtrado (entiendo que el filtro del ttable es sólo para código SQL). Si este planteamiento no es correcto, cual sería la alternativa para implementar la rejilla con filtro. De antemano, muchas gracias por vuestro tiempo. |
#2
|
||||
|
||||
Personalmente, en estos casos en los que busco una cadena dentro de otra, uso "LIKE", así:
Los caracteres "%" indican que la subcadena puede estar precedida y/o seguida por otra cualquiera. Si hubiera usado, por ejemplo, "subcadena%", entonces indica que busco aquellos registros que comiencen por "subcadena". De todas formas, aquí veo el problema de que es un texto con formato. |
#3
|
||||
|
||||
No se ha informado sobre la base de datos que se está usando, si es firebird, y si el campo blob está declarado como texto, entonces se puede hacer una búsqueda "normal".
En lugar de usar like, tengo la costumbre de usar containing La direferencia es con containing busca mayúsculas y minúsculas, y encualquier parte del texto. El ejemplo de Ñuño quedaría así:
|
#4
|
|||
|
|||
Cita:
La base de datos es sqlite (no la he citado anteriormente para no complicar la explicación), el campo blob está declarado como tal. Necesito buscar a traves de un método del componente de texto enriquecido y es aquí donde surge mi duda ¿la propiedad filter del dbgrid es sólo para código sql o puedo meter la búsqueda que necesito?, en caso contrario ¿existe alguna otra propiedad donde se pueda definir dicha búsqueda?, ¿tendría que utilizar otro componente?, etc. En última instancia, que enfoque me aconsejáis a partir de vuestra experiencia. Un saludo. |
#5
|
||||
|
||||
El código SQL hay que usarlo en componentes SQL, que son los que hacen la búsqueda. La propiedad "filter" del "dbgrid" lo que hace es filtrar lo que obtiene del TDataSet (o del componente que uses para obtener los datos de la base de datos). Por mi experiencia, suele ser más rápido hacer la consulta SQL que devuelva los datos que queremos en lugar de usar "filter".
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Contar registros filtrados con TDbf | userlazarus | Conexión con bases de datos | 5 | 28-10-2015 10:02:21 |
Contar registros con condicion | oscarac | SQL | 2 | 06-06-2011 03:42:37 |
sumatoria de una tabla mientras se cumpla una condicion | douglas | Conexión con bases de datos | 28 | 29-10-2007 22:40:57 |
Consulta que obtiene campos de una tabla u otra según condición | Gabo | SQL | 10 | 20-08-2007 08:53:02 |
Filtrar una tabla a partir de una seleccion hecha en una rejilla | zerelho | OOP | 3 | 19-12-2005 12:59:30 |
|