Ver Mensaje Individual
  #5  
Antiguo 16-10-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 26
guillotmarc Va por buen camino
Hola.

Un deadlock no se ocasiona unicamente por tener una aplicacion con dos procesos que entren en conflicto (2 TDatabase con transacciones abiertas). Sinó que también pueden entrar en conflicto dos usuarios en dos estaciones distintas (si los dos modifican el mismo registro dentro de sus respectivas transacciones, se puede ocasionar el abrazo mortal).

Las transacciones de SQL Server (a diferencia de las de Interbase) no están diseñadas para permanecer abiertas mientras el usuario modifica los datos. Puesto que mientras la transacción está abierta, se generan bloqueos sobre los datos hasta que no finalize la transacción.

Estos sistemas están diseñados para que las transacciones duren el minimo tiempo posible. Es decir cuando el usuario le da a guardar, es cuando abres la transacción, salvas los datos y finalizas la transacción.

Por cierto, el BDE está obsoleto, Borland no va a sacar nuevas versiones, y por lo tanto no va a actualizarlo a nuevas versiones de las bases de datos. Deberiais pensar en cambiar a ADO o dbExpress (solo Delphi 7), que són los componentes recomendados para acceder a SQL Server.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita