FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Filtrar un dataset
Hola,
Estoy tratando de filtrar un dataset, y me encuentro con algunos problemas. Para empezar, no puedo usar like '%lokesea%', ya que la base de datos (paradox) no lo soporta. Lo siguiente que no puedo hacer es usar dos asteriscos '*lokesea*', que daria un resultado similar. Si me deja usar un solo asterisco 'lokesea*'. Este codigo funciona cuando se utiliza un asterisco: Código:
datasource2.DataSet.Filtered := True; buscar:=''+edit14.Text+'*'; datasource2.dataset.Filter := '[nombre] = ''' + buscar +''''; Gracias |
#2
|
||||
|
||||
Me parece que si te sobran comillas.
Además, lo normal, es poner Filtered a True después de establecer el filtro. La verdad no se si de igual... pero me parece mas lógico hacerlo asi. Luego, quizas es mejor que establezcas el filtro con algo como:
el otro cambio ha sido edit14 por eBuscar. Creo que es buena practica SI poner nombres a los objetos que tienen algún uso. Yo normalmente nombro aquellos a los que hago referencia en el código. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Gracias por lo de QuotedStr, no conocia la función.
Tambien probaré lo de activar el filtro despues, pero ese no era mi problema. El problema es que no puedo aplicar los asteriscos por ambos lados, osea que lo que busco es hacer un like %buscar% Lo de poner el asterisco por la derecha ya lo tenia resuelto. Saludos |
#4
|
||||
|
||||
Cita:
Para asegurarte que la propiedad está bien establecida, podes chequearla en modo debug, o bien asignarla a un label o un edit que te te la muestre. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
Cita:
Te aseguro que sí se puede. Digo, Paradox es limitado pero no es para tanto. // Saludos |
#6
|
|||
|
|||
Hola,
Cambie las sentencias, ahora queda asi: Código:
datasource2.DataSet.Filtered := True; buscar:='*'+edit14.Text+'*'; datasource2.dataset.Filter := '[nombre] = '+quotedstr(buscar); datasource2.DataSet.Filtered := True; Si le quito el primer asterisco si, pero no es lo que busco. Cita:
Cita:
¿Entiendo entonces que no es posible poner like en un filter? Lo he probado, y da un mensage "Operator not aplicable". |
#7
|
||||
|
||||
No sé qué datasets estés usando pero al menos con TTable no es posible un like en el filtro y tampoco dos asteriscos. Yo lo que haría es usar un Query con una consulta LIKE que sí te va a funcionar.
// Saludos |
#8
|
|||
|
|||
Ok, perfecto.
Muchas gracias |
|
|
|