Uso Delphi 6 SP2, Firebird 1.52, IBX 6.08, Uso CachedUpdate en los IbDataset's
Tengo mi aplicaciónn usandose en 6 PC's, durante 1 mes aprox. y ahora me paso en 1 PC que se quedo bloqueada en el siguiente ciclo que pongo:
Código Delphi
[-]
ShowProgressBar(1,1,100,'Espere!! Terminando Transacción ....');
while true do
try
if Detalle.UpdatesPending Then
Detalle.ApplyUpdates;
if Maestro.UpdatesPending Then
Maestro.ApplyUpdates;
break;
except
on E:Exception do
if UpperCase(copy(e.message,1,15))<>'DEADLOCK UPDATE' then begin
Maestro.CancelUpdates;
Maestro.Close;
Detalle.CancelUpdates;
Detalle.Close;
Transaccion.RollbackRetaining;
break;
end;
end;
Transaccion.CommitRetaining;
LiberaProgressBar;
Este Ciclo lo uso cuando 2 ó más Pc's Intentan Grabar al mismo tiempo, todo funcionaba Muy bien hasta ahora que sucedio en 1 Pc que se quedo en el ciclo, revise las demás PC's y no había nadie que estuviese trabajando.
Sólo quisiera que me recomendarán y que me valorarán el ciclo que tengo cuando el registro esta en uso....
Agradezco cualquier sugerencia....