
Help tips with optimizing the BDE needed desparately...
1. On the NT server, turn off Opportunistic Locking (see
help). If running Win 95 workstations, find the registry key
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VRED
IR "DiscardCacheOnOpen" and set it to 1. If you don't have
that registry key, get VRDRUPD.EXE from the Microsoft Web
site and run it on the workstations.
2. If using a workgroup, set Local Share in the BDE to True,
if not, don't.
3. Don't use Cached Updates unless you have to. Paradox can
only use them in DirtyRead mode which means that if any other
user has changed /anything/ in the record, the cached update
will fail.
4. If NT Workgroup, install the BDE on the workstations as
well as the server.
5. Open all your tables explicitly when required and close
them when you are finished with them. The OnShow and
CloseQuery events of a form are OK for this. If using Delphi
3, put <table>.FlushBuffers in the AfterPost event of each
table. If using Delphi 1 or 2, call dbiSaveChanges in the
AfterPost event instead.
6. Hold your lookup tables locally but *not* in the same
folder as the application. A sub-folder will do.
7. Get hold of Tutilxxx.zip (where xxx is the version of the
BDE you will be running and Tutl32de.zip from the Borland web
site and wrap Tutl32 in a utility for your application to
repair any indexes which go might go out of date.
If you do all this, Paradox tables will be very stable in the
multi-user environment. If users need to see changes to the
server data, consider putting a call to <table>.refresh in an
OnTimer event.
Hope this helps,
Nick Spurrier (MoDESoft, UK)