Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Buscar por sonido similar (https://www.clubdelphi.com/foros/showthread.php?t=93087)

Angel.Matilla 15-05-2018 11:57:46

Buscar por sonido similar
 
Buenas. Necesito buscar en una tabla ya exsitente datos procedentes de otra para actualizar la primera de ellas. El probelma es que en varios de los casos que he visto el dato a buscar no está escrito exactamente igual; quiero decir que en la tabla a actualizar pone, por ejemplo, ALCAZAR DE SAN JUAN y en la que tiene la información a añadir está escrito como ALCÁZAR DE SAN JUAN por lo que no puedo hacer una búsqueda literal.

He estado viendo el comando SoundEx que creo que me podría valer para lo que busco ya que las diferencias que voy a encontrar son sobre todo por el tema de las tildes, pero no he sido capaz de que el compilardor lo reconozca. ¿Qué includes hay que poner para que se identifique? He probado poniendo strutils.hpp, stdio.h, string.h y ctype.h, pero siempre me da como error "Call to undefined function".

Casimiro Notevi 15-05-2018 12:03:51

Solamente tienes que definir el campo con el collate ES_ES_CI_AI
Código SQL [-]
create table tbPrueba (
  id integer not null,
  cNombre varchar(64) character set UTF8 collate ES_ES_CI_AI default '',
  primary key (id)
)
De esa forma encontrará lo que busques, aunque esté en mayúsculas, minúsculas, con tilde, sin tilde, etc.

Angel.Matilla 15-05-2018 13:20:51

Gracias. No conocía esos parámetros.

Angel.Matilla 15-05-2018 13:36:18

Me daba un error
Cita:

Data type unknown.
COLLATION ES_ES_CI_AI for CHARACTER SET UTF8 is not defined.
pero se soluciona poniendo ISO8859_1 en vez UTF8.

Angel.Matilla 15-05-2018 17:57:06

Cita:

Empezado por Casimiro Notevi (Mensaje 526274)
ES_ES_CI_AI default

Llevo dándole vueltas desde que vi el mensaje esta mañana. ¿No puede hacerse esa definición de forma global a nivel de base de datros en vez de ir tabla por tabla?

Casimiro Notevi 15-05-2018 18:25:59

Claro que se puede, decláralo en la creación de la base de datos:
Código SQL [-]
create database 'db.fdb' default character set iso8859_1 collation es_es_ci_ai;

Angel.Matilla 15-05-2018 18:28:35

Muchas gracias.

Casimiro Notevi 15-05-2018 23:40:05

Cita:

Empezado por usuario1000 (Mensaje 526288)
...

No preguntes lo mismo en varios hilos, sigue en el que iniciaste. Gracias.


La franja horaria es GMT +2. Ahora son las 15:02:03.

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