Visual Basic - transaccion: como se si estoy dentro de una?

Life is soft - evento anual de software empresarial
 
Vista:

transaccion: como se si estoy dentro de una?

Publicado por elio (70 intervenciones) el 07/02/2005 19:43:19
Transaccion: como se si estoy dentro de una?
---
trapeo errores, y pongo rollback en el trap.

pero a veces cae por otra causa, y al dar rollback da error dentro del error

Como solucion separe el rollback en funcion aparte,
para q el error muera en silencio.

Pero mas limpio seria saber si la trans esta cerrada, no?

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: transaccion: como se si estoy dentro de una?

Publicado por Ayudante (349 intervenciones) el 08/02/2005 04:13:58
El rollback funciona si y solo si has iniciado la transacción con la instrucción BeginTrans
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: transaccion: como se si estoy dentro de una?

Publicado por lito (70 intervenciones) el 08/02/2005 16:30:40
si el code es simple, es facil

sub xx()
on error goto UfaChe
beginTrans
updates varios()
...etc
commitTrans
exit sub
UfaChe:
rollback
end sub

ahora, cuando actualizo muchas tablas, tengo llamadas a varios sub,
me encuentro conque a veces trapea un error q encuentra la conex ya cerrada, por un rollback (de error previo) o un commit

Supongo era un problema de estructura,
lo solucione separando aun mas los procesos,
dejando lo principal casi como lo q se ve arriba.

pero como no siempre sabia donde pario el error (extraño a java)
supuse q deberia haber una forma de saber si la transaccion esta aun activa
antes de intentar el rollback...

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: transaccion: como se si estoy dentro de una?

Publicado por Ayudante (349 intervenciones) el 08/02/2005 16:43:17
Si vas a utilizar varios procesos debes manejar la transacción en forma atómica, o sea, desde un solo procedimiento haces la llamada a otros, sin enviar un commit o rollback, en fin, es cuestión de estructurar bien los pasos a ejecutar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar