Briefcase Model

Using Delphi5/ADO/SQL Server7.
I am developing my first 'Briefcase model'.  I have designed it so that, if
the locally saved files are found, the connection is to the files, otherwise
the connection is to the SQLServer database but with a button to switch from
one to the other..
1.  If I start with my app initially connected to the SQLServer database, I
click on a button which uses SaveToFile to save the data to the specified
files, sets connection on TADODataSets to nil, the close TADOConnection.  If
I then try to reconnect (at this point the app uses BatchUpdate to update
the main database) without closing and reopening my app, I get the message
'Cannot perform a requery after connection has changed.'  If I close the app
then run it again (using the data in the local files) all is well.

2.  If I start my app initially connected to the local files, I click on a
button which uses LoadFromFile to load the data from the files, connects to
the main database by opening TADOConnection, sets the connection on
TADODataSets to the TADOConnection.  If I then immediately try to disconnect
from the SQLServer database (using the procedure in (1)), I get the message
'The system cannot find the Path Specified.'  Again, if I close the app then
open it again, all is well.

3.  I find that my app will only update to the SQLServer if the LockType is
set to ltOptimistic, but needs to be set to ltBatchOptimistic when connected
to the local files.

Can anyone clarify where I am going wrong with my sequence of events in  (1)
and (2) and have I missed something in (3).
Anyone know of some good in-depth examples of the briefcase model?