BEGINTRAN COMMIN... entre procedimientos almacenadosº

10/08/2006 - 13:58 por Hugo Gsell | Informe spam
*Tengo N tablas.
*Para cada tabla existe una clase que define sus estructura de datos
(campos) cada uno como una propiedad.
*Para cada tabla existe "un metodo" en acceso a datos que ejecuta un
procedimiento almacenda que graba el registro de la tabla correspondiente.
*Existen procesos en mi aplicación que simultaneamente generan registros en
R tablas (con R<=N)
lo que necesito saber es si puedo desde codigo vb ejecutar un conjunto de
proc. almacenados como una transacción.
O bien, si debo crear un nuevo procedimiento almacenado que grabe
simultaneamente en las R tablas además de algun nuevo método en alguna clase
de accesos a datos como GrabaRegistrosFactura (donde por ej. grabara en la
tabla clientes, encfactura, detfactura, ctactecliente, etc)

en tipo pseudocodigo
Metodo 1 ejecutar proc almacenados independientes desde codigo vb
BEGINTRAN
LlamoAProcAlmacenado GraboEncFactura
LlamoAProcAlmacenado GraboDetFactura
LlamoAProcAlmacenado GraboClientes
LlamoAProcAlmacenado GraboCtaCteCliente
COMMITTRAN
'donde exite en sql server un proc almacenado graboencfactura,
grabodetfactura, grabocolientes, graboctactecliente

Método 2 ejecutar 1 procedimiento almacenado (en sql server) donde reciba
como parametros TODOS LOS DATOS que necesito para generar los registros en
las tablas clientes, encfactura, detfactura, ctactecliente llamado por ej.
GraboFacturaNuevaCtaCte y la transacción (begintran..commit.) será hecha
directamente en el proc. almacenado sqlserver.

LlamoAProcAlmacenado GraboFacturaNuevaCtaCte

Hugo A. Gsell
Sgo del Estero
Argentina
 

Leer las respuestas

#1 Carlos Gómez
10/08/2006 - 21:52 | Informe spam
Yo, personalmente prefiero que SqlServer realice directamente las
transacciones.

De todas formas, existe el objeto Transaction en .NET
Creo recordar que se encuentra en
System.Data.SqlClient.SqlTransaction
Para realizarlas, creas la transaccion, y la asignas a todos los SqlCommand,
finalmente haces el begin transaccion, execute command y commit transacion
Consulta la ayuda
Desde Aguadulce - España
Carlos Gomez

Preguntas similares