Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema con tildes en SQL 2000

Estas en el tema de Problema con tildes en SQL 2000 en el foro de SQL Server en Foros del Web. La compañia donde estoy aun maneja bases de datos en sql 2000 y programas en VB 6.0, el problema que tengo es que uno de ...
  #1 (permalink)  
Antiguo 01/10/2008, 09:18
 
Fecha de Ingreso: abril-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Problema con tildes en SQL 2000

La compañia donde estoy aun maneja bases de datos en sql 2000 y programas en VB 6.0, el problema que tengo es que uno de los clientes desea que si yo guardo el apellido "Jiménez" a la hora de hacer la consulta y se digite "Jimenez" sin la tilde el sql retorne todos los Jiménez con o sin tilde, ya habiamos intentado el que vb le enviara a la consulta el apellido de esta forma:
J[ií]m[eé]n[eé]z, lo cual si funciona pero tiene el inconveniente de que si el nombre tiene más de 3 vocales solo busca por medio de las 3 primeras.

Le habiamos puesto tambien una funcion al sql para que quitara las tildes a la hora de buscar, y esta funciona perfectamente pero los clientes son tan delicados que como ahora el sistema dura aprox de 30 segundos a 2 minutos en la busqueda exigen que se mejore y ya no sabemos como hacer esto.

Si alguno pudiera ayudarnos sería de mucho agradecimiento
  #2 (permalink)  
Antiguo 01/10/2008, 09:47
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Problema con tildes en SQL 2000

Estimado amigo, el problema es el collation con el que fue instalado SQL Server en el equipo. Creo que se debe reinstalarlo y al momento de seleccionar un collation se debe de especificar sin distincion de mayúsculas y sin distinción de acentos.

sin distinción de mayúsculas ya que si está guardado Jimenez y el usuario escribe jimenez será una coincidencia
__________________
Yo quiero ser el pelucón del barrio
  #3 (permalink)  
Antiguo 01/10/2008, 10:17
 
Fecha de Ingreso: abril-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Desacuerdo Respuesta: Problema con tildes en SQL 2000

Lo intentare, pero el uinico problema que tengo con eso es que varias de las llaves foraneas dependen del collation Latin1_General_CI_AS, y si lo cambio da problemas, ademas la base de datos es inmensa, esta intalada en casi todos los hospitales del pais, asi como los centros de salud regionales. No puedo decirles a los encargados de los centros de informatica que debemos cambiar el collation, ademas una vez se lo habiamos propuesto al jefe de TI y dijo que no, por ser muy arriesgado y podriamos perder datos, ademas de que no se pude dejar de usar la base por mas de 2 minutos
  #4 (permalink)  
Antiguo 01/10/2008, 10:32
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Problema con tildes en SQL 2000

No se tiene que cambiar la base de datos, sino reinstalar el motor de sql server que contiene dicha base de datos.

Podrías hacer la prueba instalando en una máquina independiente un servidor sql y cuando estés instalando asegurate que los check marcados en el gráfico estén desactivados. Pudiendo elegir el collation Latin1. Luego subes la base a este servidor y pruebas tu aplicación con este servidor ejecutando las consultas

__________________
Yo quiero ser el pelucón del barrio
  #5 (permalink)  
Antiguo 01/10/2008, 10:34
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Problema con tildes en SQL 2000

puedes especificar el collation con el que quieres hacer la consulta..
(asi no tendrias que modificar nada en tu bd ni en tu server)

por ejemplo,

Código:
set nocount on

if object_id('tempdb..#tmpTable') is not null Drop table #tmpTable

create table #tmpTable (cadena varchar(10) collate Latin1_General_CI_AS)

insert into #tmpTable values ('acentuó')
insert into #tmpTable values ('no acentuo')

select 'Consulta normal ' msg, * 
from #tmpTable 
where cadena like '%acentuo%'


select 'Especificando collation ' msg, * 
from #tmpTable 
where cadena collate Latin1_General_CI_AI like '%acentuo%'
La salida es:

Código:
msg              cadena     
---------------- ---------- 
Consulta normal  no acentuo

msg                      cadena     
------------------------ ---------- 
Especificando collation  acentuó
Especificando collation  no acentuo
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 01/10/2008, 10:41
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Problema con tildes en SQL 2000

cierto, también se puede especificar el collation en el select

Siempre había pensado especificarlo en el diseño de la instalación para no ternerlo que condicionar en los selects
__________________
Yo quiero ser el pelucón del barrio
  #7 (permalink)  
Antiguo 01/10/2008, 10:44
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Problema con tildes en SQL 2000

Cita:
Iniciado por usuariobaneado Ver Mensaje
Siempre había pensado especificarlo en el diseño de la instalación para no ternerlo que condicionar en los selects
Seria lo mejor, pero siendo consultor y llegas a una empresa a construir sobre o accediendo a los sistemas que ya tienen operando, en muy raras ocasiones te dejaran modificar las bases de datos y mucho menos reinstalar el servidor de produccion, jejeje

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:14.