FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Filtrado de datos con acentos
Hola a todos,
Tengo un clientDataSet con un campo "Nombre" que puede tener acentos o no. Tengo un campo TEdit donde introduzco el nombre a buscar. El problema es que si no introduzco exactamente el filtro tal como fue escrito, no me lo localiza. Ejemplo:
He creado un filtro de tipo:
¿Existe alguna función con la que poder comparar texto saltando el problema de los acentos? o alguna otra solución. Trabajo con Delphi 7 y MySQL. Gracias. |
#2
|
|||
|
|||
usa collate si existe
esto funciona en sql server y creo que tambien en MySql
lee intercalaciones http://technet.microsoft.com/es-es/l.../ms143515.aspx |
#3
|
|||
|
|||
Hola espericueta, gracias por tu aportación.
Las indicaciones que me das van orientadas a filtrar por SQL, pero el código que yo puse es un filtrado en el clientDataSet y no admite lo que me pones. En caso de hacerlo por SQL he estado mirando y creo que MySQL no admite la intercalación _AI. El problema que tengo está relacionado en el filtrado en el clientDataSet (o a lo sumo en el del ZQuery). Por SQL aparentemente funciona correcto: en una sentencia tal como me lista correctamente tanto José como Jose, es decir, el acento no es problema (el cotejamiento -collate- de MySQL lo tengo en latin1_spanish_ci). En resumen, mi objetivo sería utilizar los filtros del clientDataSet sin tener que ejecutar explicitamente una sentencia SQL para cada letra que escriba en el TEdit (lo adecuado sería que el filtro lo hiciera solo, ¡para eso está!) pero mi único problema en ese momento es el de los acentos. Si utilizo el evento OnFilterRecord del clientDataSet, tal como igualmente tengo el problema con los acentos. Si utilizo este mismo evento del Zquery no funciona. ¿Alguien puede aportarme alguna idea? |
#4
|
|||
|
|||
Posible solución
Saludos,
Se que este hilo tiene bastante tiempo sin actividad pero tope con el mismo problema y buscando un poco más encontré una posible solución: Para filtrar un CDS (ClientDataSet) existen 2 posibilidades: usar la propiedad filter del CDS, o utilizar un evento personalizado para la propiedad OnFilterRecord, de manera que este sea el criterio que se utilice para evaluar los registros del CDS. Con esta última opción, al habilitar la propiedad filtro, se filtrarán aquellos registros que cumplan con las propiedades dadas. Por ejemplo:
Con el código anterior, el filtro dejaría accesibles todos los registros que posean la letra o tildada: Cita:
PD: Probado con Delphi 2010. Saludos! Última edición por Casimiro Notevi fecha: 26-11-2015 a las 23:56:14. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
de Exel a MySql con filtrado de datos | voldemmor | MySQL | 5 | 08-01-2008 13:24:02 |
Filtrado SQL por mes | MaMu | SQL | 2 | 22-06-2007 04:59:49 |
Filtrado | richi | PostgreSQL | 3 | 27-02-2007 13:56:31 |
Filtrado | aanil | Tablas planas | 3 | 19-07-2006 02:52:45 |
UDF que quite acentos | gendelphi | Firebird e Interbase | 1 | 28-02-2004 04:26:41 |
|