Ich würde ehrlich gesagt lieber mehr als weniger Transaktionskomponenten verwenden. In deinem Fall, durch die Zuweisung der Connection, wird die SP nun entweder durch die explizit zugewiesene oder interne Transaktion der Connection laufen. Kann ja sein, dass auch noch andere Komponenten dann in diesem Transaktionskontext laufen. Wenn dann mal ein Commit etc. gemacht wird, gilt das für alle Komponenten.
Ich würde für jede "single
unit of work" eine eigene Transaktion verwenden. Mit der kann dann sauber in Bezug auf Commit/Rollback gearbeitet werden, ohne dabei andere Komponenten zu beeinflussen.
Ich weiss nicht welchen Background du hast, aber ein sauberes Transaktions-Handling in der Client-Anwendung ist das A und O bei der Entwicklung mit Firebird.
Thomas