Ver Mensaje Individual
  #53  
Antiguo 12-08-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Reputación: 20
ozsWizzard Va por buen camino
Falta iniciar una transacción y acabarla.

El componente TDatabase tiene un procedimiento "StartTransaction" que sirve para iniciar la transacción. Cuando acabes de hacer todas las operaciones que consideres oportunas, para acpetar los cambios se usa el procedimiento del mismo componente "Commit", si quieres cancelar los cambios, "Rollback", es decir:

Código Delphi [-]
procedure TForm14.BitBtn1Click(Sender: TObject);  // copia una factura a la otra
begin
   Database1.StartTransaction;
   try
      with Query1 do
      begin     
         Close;     
         SQL.Clear;
         SQL.Add('INSERT INTO detfacturafinal');
         SQL.Add('SELECT * FROM detfactura');
         ExecSQL;
      end;
      DataBase1.Commit;
   except      
      DataBase1.Rollback;
   end;
end;

procedure TForm14.SpeedButton3Click(Sender: TObject);//limpia la tabla detfactura
begin
   Database1.StartTransaction;
   try
      with Query1 do
      begin
         Close;
         SQL.Clear;
         SQL.Add('DELETE FROM detfactura');
         ExecSQL;
      end;
      DataBase1.Commit;
   except      
      DataBase1.Rollback;
   end;
end;
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita