Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

My Table don't real Post

Posted on 2004-03-29
10
Medium Priority
?
173 Views
Last Modified: 2010-04-05
I use in my appa dbf file with BDE. All work perfect untill...
Couple days ago, after what I save some records in  dbf file, the power go down for couple seconds and this action restart my system.
When I restart my app too, I found that allrecent inputed records , on the last sesion was lost.

Whay ?I saved these (was posted).

I repeated for couple times ( post a record and power off my system).Same results. If I close normally myappand then power off all is OK.

What to do that when I post a record in my table to b sure that is really stored on file and not to memory ( I belive that when I post the record is stored in memory and when close my app just then is saved inside thedbf file).

Best regards,
Nick

P.S.I tested already:

Table1.Post;
Table1.Close;
Table1.Open;
........
0
Comment
Question by:ginsonic
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 27

Accepted Solution

by:
kretzschmar earned 600 total points
ID: 10702360
use after each post

Dataset.FlushBuffers;

keep in mind that also the os may cache written data

meikl ;-)
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 10702379
Hello

   You need to flush the table for permanently writing the data to the disk, calling post doesn't write the data to disk immediately

Call Table1.FlushBuffers; on the after post event for writing the posted data from buffer to the disk

HTH

Regards,
Mohammed
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 10702389
opps, late again :-(
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 9

Author Comment

by:ginsonic
ID: 10704123
Don't work :( Still lose the records.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 10704167
>Don't work :( Still lose the records.

-->keep in mind that also the os may cache written data

0
 
LVL 9

Author Comment

by:ginsonic
ID: 10704644
the test app work on Win98
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 10704695
Try to set Local Share to true from the BDE Admin
0
 
LVL 22

Assisted Solution

by:Mohammed Nasman
Mohammed Nasman earned 200 total points
ID: 10704835
I found this note on the net, so it may help you, as meikl said before, the problem appear to be from the OS which catch the database files, I think you could disable the diks cache in win98
====
 local database (Paradox, dBASE, FoxPro) are not designed to withstand such behavior. If your requirements are
such that you need to allow for such
behavior, you should use a Client/Server Database which is designed for it.

I suspect what is happening here is the OS, not the BDE, is doing some buffering
here. And, the only way to you can insure
the OS writes the file completely is to close it. Naturally, this isn't
practical.

The one thing you might do to prove the BDE is writing all the information is to
place the data on a shared drive, write
data from one machine, and read it from another. If you can read it, you know the
data has been written.

Finally, you should know that DbiSaveChanges has no effect on remote data, or
when local share is true for local data (local share makes it act like remote data).
====
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 10704851
just for clarify
DbiSaveChanges is called by the flushbuffers-method
0
 
LVL 17

Assisted Solution

by:geobul
geobul earned 200 total points
ID: 10704857
Hi,

You don't really have control over the disk cache. Buy yourself an UPS. Using small off-line UPS you can force shutdown on your computer when the power goes down and your records won't be lost.

Regards, Geo
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …
Suggested Courses

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question