Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2007, 14:20
Avatar de CésarBalaguer
CésarBalaguer
 
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: ayuda objetos connection

Cuando usas transacciones (Begintrans, Commit o Rollback) procura no hacerlo por cada tabla sino por transacción, me explico.
Si tienes que actualizar (insert, update, delete) varias tablas, abres una sola transacción haces la actualización de todas y cuando termina haces el committrans y en caso de error haces el rollbacktrans,

BeginTrans abre la transacción
CommitTrans cierra la transacción con éxito (concrete las actualizaciones a todas las tablas que esten en la transacción
RollbackTrans cierra la transacción con error, es decir, deshace todaslas actualizaciones, no sólo a la última tabla o a la primera sino a todas las tablas que hayan sido actualizadas dentro de la transacción, de esa manera estas quedan exactamente igual a como estuvieron antes de iniciada la transacción

On Error Goto eError

Conexion.BeginTrans
actualiza tabla1
actualiza tabla2
actualiza tabla3
actualiza tabla4
Conexion.CommitTrans

Exit Sub

eError:
Conexion.RollbackTrans

como comentario aparte, mientras dura la transacción, ningun usuario podrá accesar a la data de las tablas hasta que esta se haya cerrado, sea por commit o por rollback.

Salu2