Tildes en consultas

11/10/2007 - 17:38 por Imac_man | Informe spam
Amigos,

Tengo una tabla con un campo de texto donde las palabras en algunos de los
casos tienen tildes, luego necesito hacer un programa que realice busquedas
sobre este campo pero sucede que en estas busquedas el usuario escribira las
palabras sin tildes o con tildes y necesito que aun asi las encuentre, como
puedo hacer para lograr este efecto.

Gracias de antemano por su ayuda

Preguntas similare

Leer las respuestas

#1 Mauro Pasetti
11/10/2007 - 19:03 | Informe spam
Esto depende del modo de ordenamiento que tenga la base de datos.
Por ejemplo si definís un campo como...
CREATE TABLE [dbo].[ClientePtoProvincia](
[IdClientePtoPcia] [int] NOT NULL,
[IdCliente] [int] NOT NULL,
[IdPlan] [int] NOT NULL,
[IdProvincia] [int] NOT NULL,
[Descrip] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AI NULL
...
Este método de ordenamiento no distingue acentos, mayúsculas o minúsculas.
Para ver el método de ordenamiento que tenés configurado, simplementa hacé
generar un script de creación de una tabla que contenga un campo varchar,
char, nvarchar y te va a decir la Collation que está usando por defecto.

Vos in embargo podés definir una Collation específica para un campo para que
las búsquedas sobre ese campo no distingan los acentos.

Esta es la mejora forma desde mi punto de vista... otra forma sería que
hagas una función desde SQL o desde el motor que reemplace las letras
acentuadas por la misma letra sin acentuar antes de realizar la búsqueda.

Fijae en la ayuda sobre COLLATE para ver las diferencias entre los métodos
de ordenamiento (cuando hacés una instalación personalizada del motor de
base de datos podés seleccionar el método de ordenamiento pero por defecto
distingue acentos)

Salu2, Mauro.


"Imac_man" escribió en el mensaje de
noticias news:%
Amigos,

Tengo una tabla con un campo de texto donde las palabras en algunos de los
casos tienen tildes, luego necesito hacer un programa que realice
busquedas sobre este campo pero sucede que en estas busquedas el usuario
escribira las palabras sin tildes o con tildes y necesito que aun asi las
encuentre, como puedo hacer para lograr este efecto.

Gracias de antemano por su ayuda

Respuesta Responder a este mensaje
#2 Enrique Catala Bañuls
11/10/2007 - 20:38 | Informe spam
Hola , lo que necesitas hacer lo hace la funcion SOUNDEX(). Esta función se
basa en patrones del lenguaje ingles, pero te sirve para tu caso de los
acentos ya que lo que hace es generar una codificación alfanumérica que
identifica a la palabra segun su "sonido". De este modo podras comparar
cadenas aunque tengan acentos.

Ejemplo:
select SOUNDEX('esdrujula') sin, SOUNDEX('esdrújula') con;

sin con
E236 E236

Espero que te sirva.
Salu2!
Atentamente, Enrique Catala Bañuls


"Imac_man" wrote:

Amigos,

Tengo una tabla con un campo de texto donde las palabras en algunos de los
casos tienen tildes, luego necesito hacer un programa que realice busquedas
sobre este campo pero sucede que en estas busquedas el usuario escribira las
palabras sin tildes o con tildes y necesito que aun asi las encuentre, como
puedo hacer para lograr este efecto.

Gracias de antemano por su ayuda



Respuesta Responder a este mensaje
#3 Mauro Pasetti
11/10/2007 - 22:43 | Informe spam
Esto depende del modo de ordenamiento que tenga la base de datos.
Por ejemplo si definís un campo como...
CREATE TABLE [dbo].[ClientePtoProvincia](
[IdClientePtoPcia] [int] NOT NULL,
[IdCliente] [int] NOT NULL,
[IdPlan] [int] NOT NULL,
[IdProvincia] [int] NOT NULL,
[Descrip] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AI NULL
...
Este método de ordenamiento no distingue acentos, mayúsculas o minúsculas.
Para ver el método de ordenamiento que tenés configurado, simplementa hacé
generar un script de creación de una tabla que contenga un campo varchar,
char, nvarchar y te va a decir la Collation que está usando por defecto.

Vos in embargo podés definir una Collation específica para un campo para que
las búsquedas sobre ese campo no distingan los acentos.

Esta es la mejora forma desde mi punto de vista... otra forma sería que
hagas una función desde SQL o desde el motor que reemplace las letras
acentuadas por la misma letra sin acentuar antes de realizar la búsqueda.

Fijate en la ayuda sobre COLLATE para ver las diferencias entre los métodos
de ordenamiento (cuando hacés una instalación personalizada del motor de
base de datos podés seleccionar el método de ordenamiento pero por defecto
distingue acentos)

Salu2, Mauro.

"Imac_man" escribió en el mensaje de
noticias news:%
Amigos,

Tengo una tabla con un campo de texto donde las palabras en algunos de los
casos tienen tildes, luego necesito hacer un programa que realice
busquedas sobre este campo pero sucede que en estas busquedas el usuario
escribira las palabras sin tildes o con tildes y necesito que aun asi las
encuentre, como puedo hacer para lograr este efecto.

Gracias de antemano por su ayuda

Respuesta Responder a este mensaje
#4 Imac_man
12/10/2007 - 17:50 | Informe spam
Muchas gracias por sus respuestas, fueron de gran ayuda.

Saludos

"Mauro Pasetti" escribió en el mensaje
news:
Esto depende del modo de ordenamiento que tenga la base de datos.
Por ejemplo si definís un campo como...
CREATE TABLE [dbo].[ClientePtoProvincia](
[IdClientePtoPcia] [int] NOT NULL,
[IdCliente] [int] NOT NULL,
[IdPlan] [int] NOT NULL,
[IdProvincia] [int] NOT NULL,
[Descrip] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AI NULL
...
Este método de ordenamiento no distingue acentos, mayúsculas o minúsculas.
Para ver el método de ordenamiento que tenés configurado, simplementa hacé
generar un script de creación de una tabla que contenga un campo varchar,
char, nvarchar y te va a decir la Collation que está usando por defecto.

Vos in embargo podés definir una Collation específica para un campo para
que
las búsquedas sobre ese campo no distingan los acentos.

Esta es la mejora forma desde mi punto de vista... otra forma sería que
hagas una función desde SQL o desde el motor que reemplace las letras
acentuadas por la misma letra sin acentuar antes de realizar la búsqueda.

Fijate en la ayuda sobre COLLATE para ver las diferencias entre los
métodos
de ordenamiento (cuando hacés una instalación personalizada del motor de
base de datos podés seleccionar el método de ordenamiento pero por defecto
distingue acentos)

Salu2, Mauro.

"Imac_man" escribió en el mensaje de
noticias news:%
Amigos,

Tengo una tabla con un campo de texto donde las palabras en algunos de
los casos tienen tildes, luego necesito hacer un programa que realice
busquedas sobre este campo pero sucede que en estas busquedas el usuario
escribira las palabras sin tildes o con tildes y necesito que aun asi las
encuentre, como puedo hacer para lograr este efecto.

Gracias de antemano por su ayuda




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida