Blob has been modified 错误的解决方案

        各位要是想看中文的话,可以去 有道 翻译一下,不过学程序的,最终还是要接触英文的,还不如趁早开始看英文。

这是我第一次在CSDN上发东西,不过N年前就在CSDN里面捞好处了,在这里查了很多有用的知识,一直觉得自己还没有能力来帮助别人,先把自身的能力提高了再说,呵呵。BDE中的"Blob has been modified"错误,CSDN里面好像回答的不是很好,借此引用一篇外文来解决这个问题。

 

Database Programming
BDE : Prevent "Index Out Of Date" & "Blob has been modified" errors and loss of data
   

 

 

If you are using the BDE you may have experienced these problems, 'Index Out Of Date' or 'Blob has been modified' errors and data loss upon a bad reboot or an application crash.

There are a two ways to fix these problems each method will force the BDE to flush the cache after every post/delete and will simultaneously fix those problems.

 

        1)Set the Local Share setting in the BDE Adminstrator to true (goto Configuration->System->Init->Local Share). Doing this will create Paradox.lck and Pdoxusrs.lck files in the the folders where the tables recide, they will only be automatically delete if you exit the application properly. So on startup of the application before opening the tables make sure to check the existence and delete those files, if you do not delete those files you might them get another notorious error "Directory is controlled by another .NET file".

if FileExists('c:/db/Paradox.lck') then
   DeleteFile('c:/db/Paradox.lck');

if FileExists('c:/db/Pdoxusrs.lck') then
   DeleteFile('c:/db/Pdoxusrs.lck');

{Open the Tables}
Table1.Active:=true;
....

        2) Call DBISaveChanges(Table's.Handle) on the AfterPost and AfterDelete events of the Table's.

You can assign the same procedure to all the AfterPost and AfterDelete events of the all the Tables on your form

procedure Table1AfterPost(Sender : TDataSet);
begin
    if(Sender is TBDEDataSet)then
    DBISaveChanges(TBDEDataSet(Sender).Handle);
end

 

If you follow either of the options mentioned you should not have those problems but there is still a chance that the table may become corrupt and you can get a 'Index Out Of Date Error' and other various errors, though it is very rare, so I recommend a utility called PdxrBld which is based on Borland's Tutil32.dll

 

引用:http://www.tek-tips.com/faqs.cfm?fid=3033

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值