Ver Mensaje Individual
  #1  
Antiguo 06-11-2003
jourdan jourdan is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico
Posts: 165
Reputación: 24
jourdan Va por buen camino
like o containing con acentos en firebird

Hola a todos, estoy desarrolando una aplicacion en delphi 6 con firebird (dialecto 3) y los ibx (actualizados a la version 6.07), el caso es que en un formulario tengo que buscar clientes, estos estan guardados algunos en mayusculas y minusculas, con acentos y sin acentos es decir hay:

LOPEZ, López, LÓPEZ, peña, PEÑA, Peña, etc.

a la hora de hacer la busqueda con cualquiera de las dos siguientes entencias sql (una usando LIKE y otra usando CONTAINING):

select * from CLIENTES
where UPPER(cliente) CONTAINING :buscar
order by cliente_id

select * from CLIENTES
WHERE UPPER(cliente) like '%' || :buscar || '%'
order by cliente_id

no me esta regresando todos los datos correctamente
es decir si :buscar es igual a PEÑA solo me regresa los registros de PEÑA con mayusculas, pero si :buscar es peña solo me regresa los registros de peña en minusculas

antes de mandar el parametro lo convierto a mayusculas:

parambyname('buscar').AsString := UPPERCASE(edit1.Text);

para comparar peras con peras, es decir toda la cadena sea en mayusculas, pero no esta resultando, si no hay acentos o caracteres especiales como la "ñ, Ñ" la consulta funciona muy bien.

Hay alguna forma de solucionar este problema??

Me imagino que solo es problema de lenguajes como español, frances etc. que usan caracteres especiales!!

De anatemano muchas gracias y saludos

Alejandro Jourdan
__________________
Alejandro Jourdan
Responder Con Cita