Visual Basic.NET - transacciones

 
Vista:

transacciones

Publicado por Racsus (68 intervenciones) el 22/09/2004 12:20:15
Hola

tengo un scrip donde ejecuto un while que ejecuta varias sentencias de actualiación sobre la misma tabla. Creo una transaccion antes y al final de while ya que lo que quiero es que todas las actualizaciones se hagan en la misma transacción es decir, que si falla a mitad del while heche para atrás las actualizaciones anteriores. El problema es que al hacer esto cuando ejecuta la segunda inserción no puede ejecutarla porque esta bloqueada por la anterior, aunque son filas de la tabla distintas.

Que puedo hacer?

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:transacciones

Publicado por Edgar (1501 intervenciones) el 22/09/2004 14:38:09
Hola

Podrías publicar parte del código que estas usando??

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:transacciones

Publicado por Racsus (68 intervenciones) el 22/09/2004 16:59:23
While i < dtable.Rows.Count
Try
ConSQL = New System.Data.SqlClient.SqlConnection(CadenaConexionSQL)
ConSQL.Open()
\' ABRIMOS LA TRANSACCIÓN
transaccion = ConSQL.BeginTransaction

/* sentencia sql */
cmd_cp = New SqlClient.SqlCommand(sql, ConSQL)
cmd_cp.CommandTimeout = 2
cmd_cp.Transaction = transaccion
cmd_cp.executenonquery
i = i + 1
wend
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:transacciones

Publicado por Edgar (1501 intervenciones) el 22/09/2004 17:29:07
Hola

El problema es que debes crear al transaccion fuera del while, porque en otro caso tendrás que cerrar la misma

ConSQL = New System.Data.SqlClient.SqlConnection(CadenaConexionSQL)
ConSQL.Open()
\' ABRIMOS LA TRANSACCIÓN
transaccion = ConSQL.BeginTransaction

While i < dtable.Rows.Count

/* sentencia sql */
cmd_cp = New SqlClient.SqlCommand(sql, ConSQL)
cmd_cp.CommandTimeout = 2
cmd_cp.Transaction = transaccion
cmd_cp.executenonquery
i = i + 1
wend

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar