Saludos
Estoy utilizando Interbase 7.0 con Delphi 2009, estoy utilizando los Componentes Interbase, estoy haciendo un programa de Sincronizacion de 2 Bases de Datos y uno de los requerimientos es Borrar todos los registros de una de las tablas, Tengo en un Listbox con todas las Tablas a Borrar, esta es la Rutina que estoy utilizando:
Código Delphi
[-]
procedure TForm1.LimpiarClick(Sender: TObject);
Var
I:Integer;
Tabla:String;
begin
If Application.MessageBox('Desea Borrar TODOS los Datos.. ?','PREGUNTA',MB_YESNO+MB_ICONERROR+MB_DEFBUTTON2)<>IdYes Then Exit;
if ibdatabase2.Connected then
Begin
ProgressBar1.Max:=ListBox2.Items.Count;
ProgressBar1.Position:=0;
ListBox2.ItemIndex:=0;
for I := 0 to ListBox2.Items.Count - 1 do
Begin
Tabla:=Trim(ListBox2.Items[i]);
IBScript2.Script.Clear;
IBScript2.Script.Add('DELETE FROM '+TABLA);
if IBScript2.ValidateScript Then
Begin
IBScript2.ExecuteScript;
IBScript2.Transaction.CommitRetaining;
End
else
Begin
Application.MessageBox(PChar('Error al con el Scrip de '+Tabla+'... Error '),'ERROR',MB_OK+MB_ICONERROR);
end;
ProgressBar1.Position:=I+1;
End;
Application.MessageBox('El Proceso a Finalizado ... ','Mensaje',MB_OK+MB_ICONINFORMATION);
ProgressBar1.Position:=0;
End;
end;
El problema es que debo efectuar varias veces este procesos para que se haga totalemente, porque dependiendo de la tabla que este Borrando me aperece el error "
connection lost to Database"
Alguna Sugerencia .. ?? o solucion al Problema ..
Gracias de Antemano