Ver Mensaje Individual
  #55  
Antiguo 12-08-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Reputación: 23
ozsWizzard Va por buen camino
Tal y como tú tenías pensado el proceso no creo que haga falta un botón nuevo, yo lo haría como te he puesto. El propio proceso, si es correcto hace commit y si ocurre algún error, rollback.

Tal y como lo he puesto se come el mensaje de error, te lo muestro completo:
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            
      on E:Exception do begin
         DataBase1.Rollback;         
         MessageDlg('Error:' + E.Message, mtError, [mbOK], 0);
      end;
   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      
      on E:Exception do begin
         DataBase1.Rollback;         
         MessageDlg('Error:' + E.Message, mtError, [mbOK], 0);
      end;
   end;
end;

Saludos
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita