esent - 脏关机后如何以编程方式恢复 ESENT 数据库?
问题描述
当使用 ESENT 数据库的应用程序崩溃时,数据库会被标记为脏,因此下次您尝试打开它时JetAttachDatabase
会返回JET_errDatabaseDirtyShutdown
.
不幸的是,似乎没有像“JetRecoverDatabase”这样的函数或我可以传递给 init 或附加函数以尝试自动恢复的标志。但这JetRestore
需要JetBackup
在应用程序崩溃之前的某个时间点调用。
数据丢失对我的应用程序来说是可以的,但是如果发生崩溃时至少可以恢复一些现有数据,那就太好了(旁注:我的应用程序不会一直崩溃。我目前正在测试各种故障可能发生)。我现在所做的只是删除数据库并重新创建它,但同样,最好恢复一些数据。
关于如何使用 ESENT 的好例子很少,所以它是一个陡峭的学习曲线。我在 GitHub 上为这个特定错误找到的几个代码示例只是说要esentutl.exe
在数据库上运行。虽然我想我可以执行程序来尝试修复它,但我更愿意以编程方式进行。
解决方案
推荐阅读
- java - 无法使用 Spring Boot 将 Node 保存到 Neo4j
- mongodb - Springboot mongo异常与Docker
- javascript - jquery 函数总是跳过表单验证
- tableau-api - Tableau 数据层仅转换为一种状态
- php - PDO MYSQL_ATTR_USE_BUFFERED_QUERY 不生效
- flutter - 尝试将我的颤振应用程序运行到我的设备时出现此错误报告
- javascript - 不使用 Express 节点服务器显示反应组件
- python - 如何生成随机数并将它们与令牌输入进行比较?
- reactjs - 用于具有多个值的字段的解析器的 Drupal GraphQL 逻辑
- c# - 为什么 StringBuilder 不能容纳大字符串并抛出 OOM Exception