首先说明下情况。我是用delphi与DBF表连接。程序是商业软件,每次交易完成时,往DBF表里写数据。1.程序在运行的时候,用VF6.0打开所使用的DBF表时,说“不是一个表”。关闭程序后,DBF表可以打开,并且数据存进去了!2.在交易结束时(之前有过多比交易),程序已经提示交易完成,在提示前已经完成对表操作(query.close),这时断电,重开机,则之前的数比交易与断电前的交易数据都丢失。但是在不断电情况下,将所使用的表(如1,打不开)拷贝到其他位置,打开可以看到交易完成,并且数据存在。3.考虑到可能程序中虽然完成了对表的操作,但是并未关闭表,所以可能造成数据丢失,所以在每次对表操作结束后,使用了事务.在对表操作前使用database.StartTransaction。query.close后使用database.Commit。在异常时使用database.Rollback.在不断电情况下可以正常使用,但是一断电,就出现系统提示:“XXXXXXXX无法读取数据,损坏,请使用chkdsk工具修复”。有过2次实验,第1次是DBF表在做复制,打开操作时有上面的提示,可以删除。第2次是DBF表所在的文件夹有上面的提示。求助各位高手,帮小弟看看,是哪方面出错误了。同行软件同样使用DBF表,但是就很少有断电损坏。看到网上有人说防止DBF损坏是用的时候打开,用完了关闭。我在DELPHI写程序的时候不是很明白什么样算是打开,什么样算是关闭。请高手指点!