Cita:
Empezado por chele
Ah se me olvidaba, un ejemplo del codigo :
Código:
function ComptadorAsegurados: integer;
var num: integer;
begin
dmcontadores.contAsegurados.open;
dmcontadores.contAsegurados.edit;
num := dmcontadores.contAsegurados.fieldbyname('codaseg').value;
dmcontadores.contAsegurados.fieldbyname('codaseg').value :=
dmcontadores.contAsegurados.fieldbyname('codaseg').value + 1;
dmcontadores.contAsegurados.post;
dmcontadores.contAsegurados.close;
result := num;
end;
|
Sería conveniente que dijeras que BD estas usando, componentes de acceso y cuantos usuarios estan accediendo al sistema.
Sin esta información, lo único que puedo decirte es que DeadLock es un "abrazo mortal" una transacción está intentando modificar un registro que está bloqueado por otro usuario/proceso/transacción.
Código Delphi
[-]
function ComptadorAsegurados: integer;
var num: integer;
begin
dmcontadores.contAsegurados.open;
num := dmcontadores.contAsegurados.fieldbyname('codaseg').value;
dmcontadores.contAsegurados.edit;
dmcontadores.contAsegurados.fieldbyname('codaseg').value := num+1;
dmcontadores.contAsegurados.post;
dmcontadores.contAsegurados.close;
result := num;
end;
Yo propondría este otro código. Que bloquea el registro justo antes de modificar el valor, y además no hace una lectura del mismo registro una vez que ya se encuentra bloqueado por escritura.
Saludos y espero que al menos, te ayude a intuir el error.
PD: Edita tu mensaje y pon en otra línea ese texto que es tan largo y hace aparecer la barra de scroll horizontal Gracias.