Errores Propios

25/07/2004 - 11:39 por Pablo Fabian Savino | Informe spam
Hola , perdon por ser tan pregunton pero hace rato que vengo con esto y no
logro dar en la tecla,

como hago para que ante cualquier error , el server me de el
error que yo quiero que se vea en mi aplicacion (en este caso VB.Net)

ejemplo:
supongamos que se inserta un duplicado (err 2627 de sql)

begin tran
insert into bla values(bla, ble,bli)
if @@error <>0
begin
rollback tran
raiserror 20000 'Esta intentando
ingresar un dato duplicado ' >>Esto quiero que aparezca y NO el error
2627 en

ingles, se puede hacer que SIEMPRE aparezca

mi mensaje que escribo en el raiserror?
return -1
end
commit tran

En visual net tengo asi

Try

.

.

Catch er As SqlClient.SqlException

msgbox(er.message) >>>>>por ejmplo, no!

End Try

pero simpre me aparece el error en ingles que el usuario no entiende de que
se trata, y solo aparecen los mios en ocaciones no tan grabes ...digamos.,
Bueno, que se puede hacer?



Salute !!!!!!!!!!
 

Leer las respuestas

#1 Javier Loria
25/07/2004 - 16:17 | Informe spam
Hola Pablo:
Si escribes ese codigo en el VB.NET apareceran ambos errores, el de SQL
(2627) y el construido (20000).
Si revisas la Excepcion que se genera SQLException, veras que tiene a su
vez una coleccion de errores tipo SQLErrors.Aqui estaran ambos errores.
Microsoft recomienda que los usuarios escribamos nuestros errores del
50,000 en adelante. Tomado del BOL:
=Al especificar mensajes de error definidos por el usuario con la instrucción
RAISERROR, utilice números de mensaje de error superiores a 50000 y niveles
de gravedad entre 0 y 18.
= Lo recomendable ahora es que escribas un algoritmo en VB.NET que revise
si hay excepciones superiores a la 50000 y devuelvas los errores
personalizados.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Pablo Fabian Savino escribio:
Hola , perdon por ser tan pregunton pero hace rato que vengo con esto
y no logro dar en la tecla,

como hago para que ante cualquier error , el server
me de el error que yo quiero que se vea en mi aplicacion (en este
caso VB.Net)

ejemplo:
supongamos que se inserta un duplicado (err 2627 de
sql)

begin tran
insert into bla values(bla, ble,bli)
if @@error <>0
begin
rollback tran
raiserror 20000 'Esta intentando
ingresar un dato duplicado ' >>Esto quiero que aparezca y NO el
error 2627 en

ingles, se puede hacer que SIEMPRE aparezca

mi mensaje que escribo en el raiserror?
return -1
end
commit tran

En visual net tengo asi

Try

.

.

Catch er As SqlClient.SqlException

msgbox(er.message) >>>>>por ejmplo, no!

End Try

pero simpre me aparece el error en ingles que el usuario no entiende
de que se trata, y solo aparecen los mios en ocaciones no tan grabes
...digamos., Bueno, que se puede hacer?



Salute !!!!!!!!!!

Preguntas similares