But what if other - "legacy" app that they have, adds a record or changes file in some other way?
This is what I have in my instructions:
"You may assume that at any moment, at most one program is accessing the database file; therefore your locking system only needs to be concerned with multiple concurrent clients of your server"
I assumed that this "one program" was my application.
What about caching of data. Is it better to suck all the data in server part memory and manage data there or read data from file for every select that comes from client side. Former might cause memory problems when there is too many records in file. That might be resolved using paging, but that adds complexity...
Given the number of records, I assumed that the database would never grow to a point that keeping these records in memory would become a problem. And as far as I could understand from the context of the application, they would be exchanging the database file every day (with new records) so I just mentioned that the application must be shut down before they do that.
Cheers, Roberto Perillo
SCJP, SCWCD, SCJD, SCBCD