Control de errores avanzado

17/04/2007 - 12:22 por Alhambra Eidos Kiquenet | Informe spam
Hola a todos.

Intentaré explicarme bien,

Estoy desarrollando una aplicación con C# que utiliza SQL SERVER. La
cuestión se pretende tener un control de errores en la ejecución de
sentencias con transacciones y controlar todo posible error que pueda
producirse. Ya centrandonos en SQL SERVER, qué algoritmo podría utilizar
para controlar estos casos ??

Es decir, yo estoy en una transacción y ejecuto una sentencia INSERT por ej.

En teoría, la mayoría de las veces si falla el INSERT, el trancount debe
mantenerse y seguimos en la transacción.
TRANCOUNT debería seguir valiendo 1 aunque haya habido un error en la
ejecución de la sentencia. (suponemos que no hay nivel de anidamiento de
transaciones en este caso...)


En el post de "Problemas Transacciones- TranCount" se habla de la severidad
(?) , es decir, no todos los errores siguen ese comportamiento. Hay algunos,
en los que por ejemplo, falla el INSERT y el valor de TRANCOUNT para a valer
0, como si cancelara la transacción.

En esta situación, qué algoritmo o qué código SQL para SQL SERVER 2000
podría utilizar para controlar todasa estas situaciones.

Una lista de errores que producen este último comportamiento (el cancelar
transacción, trancount pasa a valer 0 tras el error del Insert) me sería útil.

Gracias y saludos.
http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
 

Leer las respuestas

#1 Jose Mariano Alvarez
17/04/2007 - 13:26 | Informe spam
En el post ,
DIJO .
Hola a todos.

Intentaré explicarme bien,

Estoy desarrollando una aplicación con C# que utiliza SQL SERVER. La
cuestión se pretende tener un control de errores en la ejecución de
sentencias con transacciones y controlar todo posible error que pueda
producirse. Ya centrandonos en SQL SERVER, qué algoritmo podría utilizar
para controlar estos casos ??

Es decir, yo estoy en una transacción y ejecuto una sentencia INSERT por ej.

En teoría, la mayoría de las veces si falla el INSERT, el trancount debe
mantenerse y seguimos en la transacción.
TRANCOUNT debería seguir valiendo 1 aunque haya habido un error en la
ejecución de la sentencia. (suponemos que no hay nivel de anidamiento de
transaciones en este caso...)


En el post de "Problemas Transacciones- TranCount" se habla de la severidad
(?) , es decir, no todos los errores siguen ese comportamiento. Hay algunos,
en los que por ejemplo, falla el INSERT y el valor de TRANCOUNT para a valer
0, como si cancelara la transacción.

En esta situación, qué algoritmo o qué código SQL para SQL SERVER 2000
podría utilizar para controlar todasa estas situaciones.

Una lista de errores que producen este último comportamiento (el cancelar
transacción, trancount pasa a valer 0 tras el error del Insert) me sería útil.

Gracias y saludos.





Revisa SET ANSI_WARNINGS en la ayuda.


Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.

Preguntas similares