Master/detail-problems with cahched updates

Hello folks!

Im using Delphi 2.0 dev./Local Interbase. I have an app based on queries with chached updates
and got problems updating datasets in master/detail relationships.

Consider these scenarios:

1)  I make some changes to a detail set, then attempt to change the master. As soon as I call edit for
the master, edits on the detail immidiately get canceled. To work in edit state with both master and
detail I have to start with the master and proceed to the detail.

2)  The ApplyUpdates method (of TDatabase component) takes as param an array of datasets
When I supply master and detail in

MyDB.ApplyUpdates([MasterSet, DetailSet])

changes on the detail set is discarded and only the master is updated. To get both sets updated I
have to make two separate calls to ApplyUpdates in this order:

MyDB.ApplyUpdates([DetailSet])
MyDB.ApplyUpdates([MasterSet])

Which is not preferable because it means two transactions instedad of one.

3)  I make changes to a detail, then move the current record position of the master (call Next or Prior
or something), move back -- detail changes gone.

As far as I can see any state-changes to a master wipes away detail-updates from the chache. In any
case, this seems true for queries, Ive not experimented with tables.

Should it work like this? It indeed forces the programmer to impose restrictions on the user,
preventing him from doing this and that not to lose his work.

Thanks for any comments!