我是用ADOQuery连接的数据库,一个Excel文件作为数据库,
然后实现查询、修改的操作。修改后,在程序里面可以体现出修改的结果,就是在DBGrid里面,并且用ADOQuery.Post进行了提交,
正常关闭程序的话,没有问题,
但是如果非正常关闭程序,比如断电、蓝屏、结束任务,再打开软件,所做的修改就没有能够保存了。是什么问题呢?
该怎样改善嗯?

解决方案 »

  1.   

    一般情况下“非正常关闭程序,比如断电、蓝屏、结束任务”,都不可能对修改后的数据进行保存,但如果想知道上次程序是否正常关闭,用下面的方法应该可解决。
    先写一个FLAG,开始赋值False,写入文件,当你的程序正常关闭的话,就将TRUE赋值给FLAG并写入文件。如果程序没有正常关闭,下次程序启动的时候,读取FALG的状态,就可以判断上次程序是否正常关闭了。
      

  2.   

    回6楼,谢谢。日志表用txt来做可以吧,应该可以实时的保存到数据库当中的吧。我这个是一个登记程序,进一个,登记一个的,如果没有及时保存,而非法退出的话,就会造成有的货物没有登记。所以做一个回滚还是很有用的,多谢啦。为什么我在保存那里加了close和open 还是不能及时保存数据库呢?是什么道理呢?