La asociación con TDatasource es al margen de la base de datos. El problema es que en la propiedad "DatabasName" no tendrás un TDatabase, sino la base de datos directamente (hablo a ciegas, nunca he tratado los Querys sin TDatabase)
Y la verdad, no sé como forzar el commit. Sólo se me ocurre que ejecutes commit por medio de sentencia SQL, que no sé si funcionará
Código Delphi
[-]
procedure TForm14.HazCommit;
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('COMMIT');
ExecSQL;
end;
end;
procedure TForm14.HazRollBack;
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('ROLLBACK');
ExecSQL;
end;
end;
procedure TForm14.BitBtn1Click(Sender: TObject);
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO detfacturafinal');
SQL.Add('SELECT * FROM detfactura');
ExecSQL;
end;
HazCommit;
except
on E:Exception do begin
HazRollback;
MessageDlg('Error:' + E.Message, mtError, [mbOK], 0);
end;
end;
end;