Boletín mugperu Digital - Julio 2009!
  Search 
Monday, May 21, 2012 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Bloquear Registro con ADO Net
Prev Next
You are not authorized to post a reply.

Author Messages
HDRESDA
Posts:6

17/05/2005 02:56 PM  

Amigos

Queria preguntarles si tienen un ejemplo de como bloquear un registro y luego desbloquearlo, ya que necesito actualizar un registro de una tabla y mientras este haciendolo nadie debe accesar a el.

Saludos

Hans Dresda

rcrbalcazar
Posts:130

27/05/2005 07:03 AM  

Hola, en primer lugar: ¿como estas realizando la actualizacion del registro?, es decir quieres dejar bloqueado el registro mientras tu cliente en su pantalla lo edita y luego (lo cual puede implicar bastante tiempo) realizar la actualizacion? o quieres obtener los datos y despues de de haberlos editado los envias a la base, en ese momento (milisegundos) se debe bloquear el registro actualizar y desbloquear?

La primera forma que te he descrito se denomina bloqueo pesimista y la segunda bloqueo optimista.

Te dire que el bloqueo pesimista ya casi no se usa por cuanto implica mantener por algun tiempo (que puede ser elevado) el bloqueo de los registros.

EL bloque optimista es el que deberias usar y te dire que en el momento que actualizas l registro mediante una instruccion UPDATE pues en ese momento el registro se bloquea (eso lo maneja el SQL) ahora que se quieres asegurarte pues puedes hacer lo siguiente en tu store procedure:

procedure actaulizar

as

begin

   begin transaction

   update ....

   if (@@Error = 0)

   commit transaction

   else

   rollback transaction

end

tambien puedes usar una transaccion desde ADO.Net

Todo depende del tipo de actuaizacion que vayas a realizar.


Richard Rodriguez
HDRESDA
Posts:6

30/05/2005 10:33 AM  

Quiero bloquear un registro en Access, usando que?? bueno aun no se cual seria la forma.

Pero lo bloqueria, calcularia rapidamente un valor, actualizaria y desbloquearia finalmente, este registro contiene un campo que debo calcularlo por cada requerimiento de un usuario..

Saludos

rcrbalcazar
Posts:130

30/05/2005 04:42 PM  

Access. ok.

Abre una conexion y luego crea una transaccion para mantener bloqueados las acciones que vayas a realizar luego realizas un Commit o un Rollback. Eso es todo. Te paso el ejemplo en con el Namespace de SQL pero tu lo cambias a ODBC Net

Dim cnn As New SqlClient.SqlConnection("Cadena Conexion")

cnn.Open()

Dim tr As SqlClient.SqlTransaction

tr = cnn.BeginTransaction

Try

Dim cmd As New SqlClient.SqlCommand

cmd.CommandType = CommandType.Text

cmd.CommandText = "Insert into ()...."

cmd.Transaction = tr

cmd.ExecuteNonQuery()

tr.Commit()

Catch ex As Exception

tr.Rollback()

Finally

tr.Dispose()

tr = Nothing

cnn.Close()

cnn.Dispose()

cnn = Nothing

End Try


Richard Rodriguez
You are not authorized to post a reply.
Forums > Temas de Interés > Usando ADO.NET > Bloquear Registro con ADO Net



ActiveForums 3.7
        
Copyright 2001-2012 MUGPERU   Terms Of Use  Privacy Statement