Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
consulta sql y acentos...

Hola a todos,
Hay alguna funcion en sql para obtener registros aunque tengan acentos??

ej:
cliente: pepe lópez


select * from clientes where nombre like '%lopez%'

y que salga el registro.

gracias,
david.
Responder Con Cita
  #2  
Antiguo 15-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Que yo sepa, esto dependerá de la base de datos que uses, del juego de caracteres y el tipo de cotejamiento.

En Paradox me parece que no es posible.

// Saludos
Responder Con Cita
  #3  
Antiguo 16-06-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
Cita:
Empezado por roman
Que yo sepa, esto dependerá de la base de datos que uses, del juego de caracteres y el tipo de cotejamiento.

En Paradox me parece que no es posible.

// Saludos
pues uso Sql server 2000, y juego de caracteres spanish ... ¿se puede conseguir lo que quiero?
Responder Con Cita
  #4  
Antiguo 16-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues ni idea de SQL Server pero supongo que será similar a otros casos. En MySql por ejemplo, puedo usar el juego de caracteres Latin1, pero esto sólo dice de cuáles caracteres se dispone. Además entra en juego el cotejamiento (collation) que da las reglas por ejemplo de cómo se hacen las comparaciones. Yo uso latin1_spanish_ci donde el sufijo "ci" indica "case insensitive" y es éste el que me permite buscar con "lopez" a "Lopez", "LOPEZ", "López" y "LÓPEZ".

// Saludos
Responder Con Cita
  #5  
Antiguo 16-06-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Podría asegurar que no se puede hacer lo que quieres; porque son caracteres diferentes, tienen código diferente..... no es lo mismo "ó" a "o", es como comparar una X con una A....
supongo que tendrías que hacer dos búsquedas distintas... o utilizar algún OR...

ahora, si cada vez que encuentres una letra con acento la cambias por un % podría funcionar, es decir: es una búsqueda de caracteres con acento en tu cadena y luego cambiarlos por %.... y al final quedara:

nombre like '%l%pez%'

Si estoy en un error por favor sáquenme de la ignorancia maldita

saludos
__________________


Última edición por ContraVeneno fecha: 16-06-2005 a las 20:38:04.
Responder Con Cita
  #6  
Antiguo 16-06-2005
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 20
gmontes Va por buen camino
para evitar esos problemas yo capturo todo en mayusculas y asi me quito esas confusiones.

ya que Arce es diferente a ARCE.

aunque no tenga acento
Responder Con Cita
  #7  
Antiguo 16-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ContraVeneno
Si estoy en un error por favor sáquenme de la ignorancia maldita
Pues como dije antes, no sé si en SQL Server se pueda o no así que no puedo hacerte este favor que pides

Pero sí te puedo confirmar que en MySql es posible.

// Saludos
Responder Con Cita
  #8  
Antiguo 16-06-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por gmontes
para evitar esos problemas yo capturo todo en mayusculas y asi me quito esas confusiones.

ya que Arce es diferente a ARCE.

aunque no tenga acento
Yo tambien capturo todo en mayúsculas, pero igual sigo obteniendo acentos... no puedo decirle a todos mis usuarios que por favor no utilizen acentos jeje

En fin, tenía un poco de tiempo libre en mi hora de comida, así que me puse a investigar un poco... y si, Roman, es la misma situación para SQL Server, depende del COLLATION que se utilize, lo cuál para mi es muy interesante porque esta parte no la conocía....

Utiliza SQL_Latin1_General_CP1_CI_AI , en busqueda te sale con acentos o sin acentos, tambien sin ñ o con ñ

para más información consulta: MSDN (en inglés)
Otro foro en español: consulta busquedas sin distincion de Acentos
__________________


Última edición por ContraVeneno fecha: 16-06-2005 a las 21:11:19. Razón: posible respuesta
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:52:18.


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
Copyright 1996-2007 Club Delphi