Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2006, 10:54
yayita1502
 
Fecha de Ingreso: febrero-2003
Mensajes: 40
Antigüedad: 22 años, 2 meses
Puntos: 0
Transacciones anidadas

No sé como realizar una transacción anidada.
El siguiente codigo me permite realizar las dos transacciones pero no me permite volver atras las dos transacciones. Uso Visual Basic y Access 97 y DAO.

Dim resVerifico As Recordset, strSQL As String

MousePointer = 11
DATAX = "UPDATE ESCUELAS SET IDGestion=" & cboGestion.ItemData(cboGestion.ListIndex) & ",IDCodPresu='" & txtEscuela.Text & "',IDRegion=" & cboRegion.ItemData(cboRegion.ListIndex) & ",IDDepartamento=" & cboDepartamento.ItemData(cboDepartamento.ListIndex ) & ",IDLote=" & cboLote.ItemData(cboLote.ListIndex) & ",IDFuncion=" & cboFuncion.ItemData(cboFuncion.ListIndex) & " " & _
"WHERE IDEscuelas=" & txtIDEscuela.Text & ""
On Error GoTo controlador
wrkPredeterminado.BeginTrans
CTRLNUM = 0
dbBase.Execute DATAX, dbFailOnError
wrkPredeterminado.CommitTrans
On Error GoTo 0
MousePointer = 0

'Actualizar la escuela en la tabla de devoluciones
MousePointer = 11
DATAX = "UPDATE DEVOLUCIONES SET IDFuncion=" & cboFuncion.ItemData(cboFuncion.ListIndex) & " " & _
"WHERE IDCodPresu='" & txtEscuela.Text & "' and IDRegion=" & cboRegion.ItemData(cboRegion.ListIndex) & " and IDDepartamento=" & cboDepartamento.ItemData(cboDepartamento.ListIndex ) & " and IDLote=" & cboLote.ItemData(cboLote.ListIndex) & " "

On Error GoTo controlador
'wrkPredeterminado.BeginTrans
CTRLNUM = 0
dbBase.Execute DATAX, dbFailOnError
wrkPredeterminado.CommitTrans
On Error GoTo 0
MousePointer = 0

exit sub

controlador:
If CTRLNUM = 1000 Then
Rollback
MousePointer = 0
On Error GoTo 0
DATAX = "No se pudieron registrar los cambios."
MsgBox DATAX, vbCritical, "Sistema Bloqueado."
Else
CTRLNUM = CTRLNUM + 1
Resume
End If
__________________
Yayi :adios: