Mensajes de error y columna desencadenante

19/02/2005 - 13:55 por Leopoldo Ramos | Informe spam
No dudo que hayan preguntado esto antes.

Vengo de trabajar con otras plataformas y estoy aprendiendo sql server
desarrollando una pequena aplicacion la cual ya la estoy probando con los
usuarios, luego de leer mucha documentacion y los libros en linea.

Le pongo por ejemplo restricciones a una base de datos, sean valores default
o sean relaciones de integridad y veo que efectivamente sql server me maneja
muy bien la validez de los datos y le reporta al usuario un error cuando los
datos no pudieron ser salvados exitosamente. Hasta ahi bien. Lo que me
pasa es que los mensajes en ingles de la bd no son muy comprensibles por los
usuarios por tanto no saben muchas veces que es lo que deben corregir en la
pantalla (cual campo) para que le permita grabar los datos correctamente.
No es solo el hecho que sean en ingles tambien es que los mensajes son en
lenguaje tecnico. Algunos diran: "bueno a veces ni que esten en espanol
claritos los usuarios los entienden.. jejejej", pero algo se puede hacer.

Mi pregunta es si uno tiene alguna manera de cambiar el texto de esos
mensajes (ojo: ya vi el raiserror y no es exactamente lo que quiero) o en su
defecto saber cual es la columna que reporta el error para quizas resaltarla
en la aplicacion para que el usuario sepa que alli esta el problema y vaya y
lo corrija.

Ojala tenga una solucion porque me gusta hacer las aplicaciones amigables
porque son para usuarios que trabajaran muchas veces sin un asistente
tecnico "in situ" (son paquetes que se venderan a distintas empresas) y eso
me decepciona un poco para conseguir ese objetivo.


Nuevamente gracias si me pueden colaborar con alguna sugerencia u opinion


Leopoldo Ramos
 

Leer las respuestas

#1 Jorge Bustos
21/02/2005 - 03:15 | Informe spam
Los mensajes de error están en la tabla sysmessages de la base de datos
master.

Todas las instalaciones de SQL Server traen el idioma inglés (langid 1033 de
dicha tabla) y algunas de las diferentes versiones localizadas de SQL Serve
(incluida la española) también traen los mensajes en el idioma
correspondiente.

Te recomiendo no hacer cambios sobre la base de datos de sistema, aunque
para este caso quizás no hiciera daño añadir los mensajes traducidos al
español con langid082. Si vas a hacer la prueba asegúrate de realizar
copia de seguridad de tu base de datos, y de que sabes restaurar la base de
datos master.

A parte de que el idioma esté en esa tabla es necesario que la conexión
utilice el idioma adecuado para que el mensaje salga en el idioma correcto.

Una opción es utilizar
SET LANGUAGE Spanish
para cambiar el idioma de la conexión (dura solo hasta que se cierra la
conexión).

Otra opción es ir a las propiedades de cada login (inicio de sesión) de la
base de datos y asignarle un idioma dado. (cada vez que se conecte dicho
login a la base de datos se le asigna el idioma especificado).

Otra opción es ir a las propiedades del servidor (desde el administrador
corporativo) y cambiar el idioma para todos los login (será el que tomen
todas las conexiones, salvo si el login que está conectándose tiene otro
especificado).

Lo más recomendable es que utilice SQL Server en español y te asegures de
que el idioma por defecto es correcto.

Ojo, el cambio de idioma también afecta al modo de mostrar e interpretar las
fechas. Prueba sp_helplanguage.


"Leopoldo Ramos" wrote in message
news:%
No dudo que hayan preguntado esto antes.

Vengo de trabajar con otras plataformas y estoy aprendiendo sql server
desarrollando una pequena aplicacion la cual ya la estoy probando con los
usuarios, luego de leer mucha documentacion y los libros en linea.

Le pongo por ejemplo restricciones a una base de datos, sean valores


default
o sean relaciones de integridad y veo que efectivamente sql server me


maneja
muy bien la validez de los datos y le reporta al usuario un error cuando


los
datos no pudieron ser salvados exitosamente. Hasta ahi bien. Lo que me
pasa es que los mensajes en ingles de la bd no son muy comprensibles por


los
usuarios por tanto no saben muchas veces que es lo que deben corregir en


la
pantalla (cual campo) para que le permita grabar los datos correctamente.
No es solo el hecho que sean en ingles tambien es que los mensajes son en
lenguaje tecnico. Algunos diran: "bueno a veces ni que esten en espanol
claritos los usuarios los entienden.. jejejej", pero algo se puede hacer.

Mi pregunta es si uno tiene alguna manera de cambiar el texto de esos
mensajes (ojo: ya vi el raiserror y no es exactamente lo que quiero) o en


su
defecto saber cual es la columna que reporta el error para quizas


resaltarla
en la aplicacion para que el usuario sepa que alli esta el problema y vaya


y
lo corrija.

Ojala tenga una solucion porque me gusta hacer las aplicaciones amigables
porque son para usuarios que trabajaran muchas veces sin un asistente
tecnico "in situ" (son paquetes que se venderan a distintas empresas) y


eso
me decepciona un poco para conseguir ese objetivo.


Nuevamente gracias si me pueden colaborar con alguna sugerencia u opinion


Leopoldo Ramos


Preguntas similares