Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Relational Databases
Expertise: Beginner
May 9, 1997



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Paradox: Lost Data?

We're concluding development of a Delphi 1.0 to 2.0 app and have found during user testing that after an app except, when the app terminates, all data entered has been lost.

The app consists of a main form with a number of db comps on, and each form's tables are linked to these db comps.

When a table is opened, is the data kept in memory until closing, despite posts? Where are posts written to? If they are written to the inmem table, can we periodically 'commit' data to the 'real' db? Is there anything else thatcould cause this problem?

Little known is the fact that buffering is going on in the BDE when a table is being edited. So yeah, you'll lose data if the records haven't been committed. To ensure minimal data loss (i.e. only the record currently being worked on), you should follow each post with the following BDE call:

DBISaveChanges(Table1.Handle); //or whatever your table is named.
This will force the BDE to write the data in memory to disk.
DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date