Hola marilinspi.
Se me ocurre que podrías usar un
TTimer para el autoguardado, algo parecido a este ejemplo:
Código Delphi
[-]
const
NSEG = 20;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Database1 do
begin
Close;
AliasName := 'DBDEMOS';
TransIsolation := tiDirtyRead;
Open;
end;
with Query1 do
begin
DatabaseName := 'TEST';
CachedUpdates:= True;
UpdateMode := upWhereChanged;
Open;
end;
Timer1.Interval := NSEG * 1000 ; Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with Query1 do
begin
Database1.StartTransaction;
try
ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
CommitUpdates;
end;
ShowMessage('Datos guardados'); end;
procedure TForm1.Query1EditError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
const
FLAG = MB_ICONERROR + MB_RETRYCANCEL;
begin
if MessageBox(Handle, Pchar(E.Message),'', FLAG) = IDRETRY then
Action := daRetry
else
Action := daAbort;
end;
No le pidas mucho lujo al código, estoy seguro que debe haber 100 formas mejores de escribirlo. La verdad es que tuve que leer para refrescar los paupérrimos conocimientos que tengo sobre
Paradox , es sólo para acercarte una idea y que espero te sea útil.
De todos modos, y con la mejor de las intenciones, te voy a hacer una sugerencia. Con
Paradox vas a vivir reparando y reindexando, es tecnología obsoleta y te va a dar muchos dolores de cabeza.
Existen excelentes gestores, y gratuitos además, como
PostgreSQL,
Firebird o
MySql (por mencionar algunos), que son mil veces superiores. Si todavía estás a tiempo de migrar, huí de
Paradox cuanto antes.
Saludos