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. |