1
Visual Basic 6 / Re:Manejo de transacciones en VB
« en: Septiembre 08, 2016, 08:09:46 pm »
Yo realizo el control de las Transacciones de MSSQL desde VB Usando ADODB. Es mucho mas amplio manejar varios SP y al final si encuentras un error realizar el RollBack
Ejemplo sencillo usando una Trans. con ADODB
Luego puedes crear una clase mas completa llamada SQLACCESS o como gustes. Que realiza multiples acciones o tambien para agilizar tiempos, por ejemplo
Saludos
Ejemplo sencillo usando una Trans. con ADODB
Código: [Seleccionar]
Dim cn As ADODB.Connection '//Conexion al DB
cn.Open "Provider=SQLOLEDB.1;password = 1234. ;User ID=SA ;Initial Catalog=...."
cn.BeginTrans '-->INICIA LA TRANSACCION
Dim oCmd As New ADODB.Command
Set oCmd.ActiveConnection = cn
oCmd.CommandText = "EXEC SP_PRUEBA @ParamAccion='INSERTAR'; EXEC SP_PRUEBA @ParamAccion='ACTUALIZAR';"
oCmd.CommandType = ADODB.adCmdText
'-->Ejectuando
oCmd.Execute
If cn.Errors.Count = 0 Then '--> Valida si contiene Errores
cn.CommitTrans '--> Completa la Accion
Else
cn.RollbackTrans '--> Revierte la Accion
End IF
cn.Close
Luego puedes crear una clase mas completa llamada SQLACCESS o como gustes. Que realiza multiples acciones o tambien para agilizar tiempos, por ejemplo
Código: [Seleccionar]
Dim dba as new SQLACCESS
With dba
.IniciarTrans
.EJecutarQuey("INSERT INTO TABLA(Field) VALUES(1);")
.EJecutarQuey("INSERT INTO TABLA(Field) VALUES(2);")
.EJecutarQuey("INSERT INTO TABLA(Field) VALUES(3);")
.EJecutarQuey("INSERT INTO TABLA(Field) VALUES(4);")
.EJecutarSP("PA_PRUEBA","Param='ACTUALIZAR_SALDO'")
If .ConErrores= True Then
.TerminarTrans= 0 '0=RollBack
Else
.TerminarTrans= 1 '1=Commit
End If
End With
Set dba = Nothing
Saludos
