Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Karman12

Páginas: [1]
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
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  :)


Páginas: [1]