The rollback transaction request has no corresponding begin

I use Delphi 5 with SQL server 6.5.

If I try to delete a parentrecord from a table where still child
records exist. The trigger fires a exception with a messsage like
"can't delete parent because children exist in....". That's okay...
The users of the programm understand the message.

a) If I build a application in Delphi and use a TQuery component with
RequestLive=True and try to delete the same record my application
shows the message "The rollback transaction request has no
corresponding begin"
I don't explicitly start, rollback or commit a transaction (Delphi
does!)
This is bad....The users of the programm don't understand the message.

b) Then I use another TQuery compontent. SQL="DELETE FROM PARENT_TABLE
WHERE ..." and I use the ExecSQL method. I try to delete the same
record and now the message is like "can't delete parent because
children exist in...."

In the early days of Delphi 3 this problem didn't exist.
Does anybody knows a solution or work-around for my problem?