BDE and transaction control

As I understand there are two methods of handling an update to a grid
(environment: odbc,sqlserver,bde),  The first is to allow the update to
be applied immediately on when the active row is changed.  This solution
does not work very well in nearly all my scenarios.  The second method
is to use cached updates and apply the changes on some event.  This is
an excellent idea.  However, there are multiple connections being
generated for the different types of transactions.  If I attempt to
control the entire transaction I deadlock myself on the various
operations.  Is there a simple solution to this?  How is anyone
controlling transactions in a c/s environment?  Also, is there a way to
limit what is sent to the server?  I connected through BDE and it send
about 3 pages of set environment commands.