首页 > 解决方案 > 脏关机后如何以编程方式恢复 ESENT 数据库?

问题描述

当使用 ESENT 数据库的应用程序崩溃时,数据库会被标记为脏,因此下次您尝试打开它时JetAttachDatabase会返回JET_errDatabaseDirtyShutdown.

不幸的是,似乎没有像“JetRecoverDatabase”这样的函数或我可以传递给 init 或附加函数以尝试自动恢复的标志。但这JetRestore需要JetBackup在应用程序崩溃之前的某个时间点调用。

数据丢失对我的应用程序来说是可以的,但是如果发生崩溃时至少可以恢复一些现有数据,那就太好了(旁注:我的应用程序不会一直崩溃。我目前正在测试各种故障可能发生)。我现在所做的只是删除数据库并重新创建它,但同样,最好恢复一些数据。

关于如何使用 ESENT 的好例子很少,所以它是一个陡峭的学习曲线。我在 GitHub 上为这个特定错误找到的几个代码示例只是说要esentutl.exe在数据库上运行。虽然我想我可以执行程序来尝试修复它,但我更愿意以编程方式进行。

标签: esent

解决方案


推荐阅读