Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 180
  • Last Modified:

My Table don't real Post

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
ginsonic
Asked:
ginsonic
  • 4
  • 3
  • 2
  • +1
3 Solutions
 
kretzschmarCommented:
use after each post

Dataset.FlushBuffers;

keep in mind that also the os may cache written data

meikl ;-)
0
 
Mohammed NasmanSoftware DeveloperCommented:
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
 
Mohammed NasmanSoftware DeveloperCommented:
opps, late again :-(
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
ginsonicAuthor Commented:
Don't work :( Still lose the records.
0
 
kretzschmarCommented:
>Don't work :( Still lose the records.

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

0
 
ginsonicAuthor Commented:
the test app work on Win98
0
 
Mohammed NasmanSoftware DeveloperCommented:
Try to set Local Share to true from the BDE Admin
0
 
Mohammed NasmanSoftware DeveloperCommented:
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
 
kretzschmarCommented:
just for clarify
DbiSaveChanges is called by the flushbuffers-method
0
 
geobulCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now