Hola egostar
Para que te quede un poco mas claro esto de las transacciones:
1: Modulo de datos, enlace, comienzo trans.
Código Delphi
[-]DataModule1.AC1.BeginTrans;
2: Query, Sentencia sql, y ejecutar sentencia sql.
Código Delphi
[-]
QTemp.SQL.Text := QTemp.ExecSQL;
QTemp.SQL.Text := QTemp.ExecSQL;
DataModule1.AC1.CommitTrans;
3: Si fallan las insersiones u otros se hace un (no paso nada), todo sigue igual asi:
Código Delphi
[-]DataModule1.AC1.RollbackTrans;
Bueno este es el procedimiento que uso y a mi me funciona.
Saludos