Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 11-07-2007
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 23
nuk3zito Va por buen camino
Pues debes iniciar una transacción cuando pretendan editar el registro.
Luego haces un update sencillo para que se bloquee, por ejemplo:
Código:
AdoConnection1.BeginTrans;
with AdoQuery1 do
begin
  SQL.Close;
  SQL.Clear;
  SQL.Add('update Clientes');
  SQL.Add('set Id_Cliente = Id_Cliente');
  SQL.Add('where Id_Cliente = ' + IntToStr(iCliente));
  ExecSQL;
end;
Con esto garantizas que se genera un bloqueo, y a los demás usuarios que intenten entrar a modificar este registro, les marcará el error de "tiempo de espera" mientras no hayas confirmado o cancelado la transacción.

Luego, al momento de guardar, haces tus updates yliberas el bloqueo (confirmando la transacción):
Código:
with AdoQuery1 do
begin
  SQL.Close;
  SQL.Clear;
  SQL.Add('update Clientes');
  SQL.Add('set Nombre = :Nombre,');
  ...
  SQL.Add('where Id_Cliente = ' + IntToStr(iCliente));
  ExecSQL;
end;

AdoConnection1.CommitTrans;
El inconveniente es que, si el usuario da click al botón de "modificar" y se va y se toma un café (o hay quienes duran 30 minutos cuando van al baño) el bloqueo estará ahí, esperando a que el usuario lo libere o alguien con acceso al SQL Server lo mate. Sin embargo, eso es lo que hay de bloqueos para SQL Server.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Bloquear y Desbloquear registros php+Mysql enecumene PHP 2 16-03-2007 19:41:44
Bloquear registros en Sql2000 RJF Varios 0 18-01-2006 18:05:42
¿cómo puedo hallar el mínimo de la diferencia de 2 campos de todos los registros? nuri SQL 8 28-07-2005 18:34:57
¿Bloquear registros en tablas foxpro 2.6? ALMERA Conexión con bases de datos 0 25-03-2004 11:42:49
Añadir campos persistentes en tiempo ejecucion Firibiri Conexión con bases de datos 3 22-12-2003 11:43:08


La franja horaria es GMT +2. Ahora son las 12:07:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi