突然断电,数据库中的数据保存问题(100分)

  • 主题发起人 主题发起人 中原象
  • 开始时间 开始时间

中原象

Unregistered / Unconfirmed
GUEST, unregistred user!
当我的程序正在不断地向数据库中写数据,若突然断电,那么,在程序
中采取什么样的措施能保留最多的数据。
这个问题是因为我发现数据库数据是在缓冲区中更新的,若突然掉电,
则,程序无法写数据到数据库中。虽然,我在程序中每一条记录append,
就post,refresh一次。但好象不行。
在windows95 +delphi3
数据库paradox,组件table
 
可每隔一段时间执行:
table1.active:=false;
table1.active:=true;
 
最彻底,最有效,最正规,最安全的解决办法:
<b>装一个UPS.</b>
--如果你的数据很重要的话.
 
如果经常的掉电会出现索引出错,memo等字段内容出错诸多麻烦。
买UPS。
 
close/open
好象 bde 有个 API 的。唉,又忘记了。
 
对问题的补充:
数据库的写是在线程中进行的
table.append;
table.edit;
... ...
table.post;
table.close;
table.open;
然后,继续下一条记录的读写。另外在我的程序中其他表单中也用到了
table,并且在编程是初始为table.active:=true.
在做关机实验时,有时可以保存些数据。但好象大部分时候不行。
 
keepconnection := false
 
大型数据库应该不会有这问题;好像我以前用interbase也曾有过类似问题;
另外我用table时感觉不如query可靠,你可尝试使用query,直接update、
append,如果再加上database进行事务控制,可能效果会更好。
由于我的pc不宜进行断电试验,只有麻烦你自己了,不好意思......
 
CJ 老兄
keepconnection:=false
怎么用?能不能详细一点。见笑了。
 
oh
在database中找到了
 
这个问题已经在以前的问题中解决。因为我是第一次注册时间很短,还不熟悉
使用这个资源。感谢5位的热心帮忙。
 
由于5位的热心。每人20分。我结束这个问题的讨论。
 
后退
顶部