Ejecutar dos sentecias SQL

27/08/2007 - 11:20 por [Juanjo] | Informe spam
Hola grupo:

Necesito hacer un select (para calcular un valor) y un insert (donde uso
el valor calculado)
sobre una tabla de una base de datos SQL Server, de modo que si se empieza a
ejecutar este
"proceso", "nadie" mas pueda ejecutar dicho proceso hasta que termine (para
que no usen el
mismo valor calculado en el select).

Lo que necesito es bloquear la tabla mientras un usuario ejecuta las
consultas, pero no se como
hacerlo con TableAdapter.

Muchas gracias.
 

Leer las respuestas

#1 Alberto Poblacion
27/08/2007 - 13:19 | Informe spam
"[Juanjo]" wrote in message
news:
Necesito hacer un select (para calcular un valor) y un insert (donde
uso el valor calculado)
sobre una tabla de una base de datos SQL Server, de modo que si se empieza
a ejecutar este
"proceso", "nadie" mas pueda ejecutar dicho proceso hasta que termine
(para que no usen el
mismo valor calculado en el select).

Lo que necesito es bloquear la tabla mientras un usuario ejecuta las
consultas, pero no se como
hacerlo con TableAdapter.



Con un servidor de base de datos, la forma de "bloquear una tabla"
consiste en ejecutar todo el proceso dentro de una transacción: Inicias
transacción, realizas el Select, realizas el Insert, y haces el Commit de la
transacción.
Con ado.net, la forma de usar transacciones consiste en llamar al método
BeginTransaction de la conexión, que te devuelve un objeto de tipo
SqlTransaction, asignar ese objecto a la propiedad Transaction de todos los
Command que se usen durante la transacción, y finalmente llamar al método
Commit del objeto Transaction. Nunca lo he hecho con un TableAdapter, pero
seguro que tiene alguna propiedad para asignarle el objeto Transaction.

Preguntas similares