Manejo de transacciones

19/06/2006 - 14:02 por Carlos | Informe spam
Hola de nuevo.

Algunos que venimos de otros lenguajes , nos acostumbrabamos a abrir
explicitamente las transacciones a sql server (begin transaction).
Igualmente posteabamos los cambios explicitamente (Commit).

Como es ese manejo en C# ? Un DataSet lo hace automaticamente ?

Podria todavia uno mismo tener el control para mayor seguridad ?

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
19/06/2006 - 14:12 | Informe spam
"Carlos" wrote in message
news:
Hola de nuevo.

Algunos que venimos de otros lenguajes , nos acostumbrabamos a abrir
explicitamente las transacciones a sql server (begin transaction).
Igualmente posteabamos los cambios explicitamente (Commit).

Como es ese manejo en C# ? Un DataSet lo hace automaticamente ?



La transacción se inicia con un objeto SqlTransaction, que se obtiene a
partir de la conexion:

SqlTransaction tran = conexion.BeginTransaction();

Después, cada vez que vayas a usar un SqlCommand para ejecutar una
sentencia Sql que deba participar en esa transacción, le tienes que meter
ese objeto "tran" en su propiedad Transaction. Esto incluye a los
DataAdapters, a cuyos SqlCommands internos también les puedes asignar el
.Transaction.

SqlCommand cmd = new SqlCommand(sentencia, conexion);
cmd.Transaction=tran;
cmd.ExecuteNonQuery(); //O calquier otra llamada

Cuando hayas terminado con la transacción, se usa tran.Commit() o
tran.RollBack().
Respuesta Responder a este mensaje
#2 Saul Muñoz (DsK)
21/06/2006 - 01:49 | Informe spam
Que tal Carlos definitivo tu puedes tener el control de la transacción

De hecho podríamos hablar al menos hasta donde yo conozco de tres niveles de
transacciones

1.- T-SQL Transacciones que pones dentro de un sp por ejemplo o dentro de un
batch que mandas ejecutar dentro de un query sql(que ya sabes que no es muy
recomendado o con mucho cuidado por el injection)

SqlTransaction trans = connection.BeginTransaction()
y lógicamente para cuando estés elaborando el proceso importante
usas un try catch para hacer commit o rollback a tu transacción

Saludos y espero que te haya servido

2.- Transacciones de ADO.NET . Si necesitas hacer varios llamadas a
procedimientos para completar una tarea.



3.-Enterprise Services se recomiendan para transacciones que reunen
multiples fuentes de datos de almacenamiento.



"Carlos" escribió:

Hola de nuevo.

Algunos que venimos de otros lenguajes , nos acostumbrabamos a abrir
explicitamente las transacciones a sql server (begin transaction).
Igualmente posteabamos los cambios explicitamente (Commit).

Como es ese manejo en C# ? Un DataSet lo hace automaticamente ?

Podria todavia uno mismo tener el control para mayor seguridad ?



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida