Trabajo con vb.net 2005 y sqlserver 2000.
Tengo un esquema de trabajo con base de datos de SOLO OPERAR A TRAVES DE
PROCEDIMIENTOS ALMACENADOS... cada uno devuelve un nro de error (o cero si
no ocurre error) utilizando la variable @@error de sqlserver.
Como puedo desde mi capa de datos ejecutar una transcacción... donde cada
PASO de la transacción será la llamada a un procedimiento almacenado.
Abajo muestro un código sacado de ELGUILLE pero que envía directamente
operaciones update (que podrian ser insert u otras)... pero no tengo
privilegios sobre la base (tablas) para estas operaciones... solo a traves
de storedprocedures
Es decir, ¿puedo utilizar el mísmo código? recordando que en mi caso es
cmd.CommandType = CommandType.StoredProcedure
HUGO A. GSELL
Sgo del Estero
Argentina
Public Sub Transferir(ByVal strCadenaConexion As String)
' Apertura de la conexión
Dim Conexion As New SqlConnection(strCadenaConexion)
Conexion.Open()
Dim Commando As New SqlCommand
Dim Transaccion As SqlTransaction
' Inicio de la transaccion
Transaccion = Conexion.BeginTransaction()
Commando.Connection = Conexion
Commando.Transaction = Transaccion
Try
' Comando para descontar $100 de la Cuenta A
Commando.CommandText = "Update into Cuentas Set Saldo = Saldo - 100
Where Cuenta = 'CuentaA'"
Commando.ExecuteNonQuery()
' Comando para aumentar $100 de la Cuenta B
Commando.CommandText = "Update into Cuentas Set Saldo = Saldo + 100
Where Cuenta = 'CuentaB'"
Commando.ExecuteNonQuery()
' Finalización exitosa de la transacción
Transaccion.Commit()
Console.WriteLine("El Dinero fue transferido con éxito")
Catch e As Exception
' Cancela toda la transacción
Transaccion.Rollback()
Console.WriteLine(("Se produjo un error al procesar la
transferencia" + vbNewLine + "Detalle:" + vbNewLine + e.ToString()))
Finally
Conexion.Close()
End Try
End Sub
Leer las respuestas