我一直在尝试从MS ESENT doc运行示例,我发现另一个示例 MS 示例在 VC++ 2010 Express 上编译得很好。但是,当我尝试任一程序时,我都会收到错误代码 0f -1216 记录为
在恢复开始或结束时检测到未完成的数据库附件,但数据库丢失或与附件信息不匹配。
由于这是新的发展,我不知道我可能需要做什么。有人看到这个错误吗?
我一直在尝试从MS ESENT doc运行示例,我发现另一个示例 MS 示例在 VC++ 2010 Express 上编译得很好。但是,当我尝试任一程序时,我都会收到错误代码 0f -1216 记录为
在恢复开始或结束时检测到未完成的数据库附件,但数据库丢失或与附件信息不匹配。
由于这是新的发展,我不知道我可能需要做什么。有人看到这个错误吗?
(对不起,这是几个月后,也许它会帮助别人。)
您更有可能JET_errAttachedDatabaseMismatch
在开发过程中看到。它通常是由删除一些 ESE 生成的文件引起的,但不是全部。如果您删除数据库,您还应该删除日志文件。这种情况在开发过程中很常见,当您尝试删除数据库时,可能会忘记删除其他文件。
创建新数据库时,会有一个与之关联的签名(时间戳和随机数)。你可以用esentutl -mh foo.edb
. 事务日志文件跟踪它引用的数据库的签名。如果您从另一台机器复制同名数据库文件,则签名将不匹配。这种不匹配有时会显示为JET_errAttachedDatabaseMismatch
(但可能还有其他方式使其冒泡)。
JetInit
有点名不副实。它启动日志文件重播。如果您拥有第一代的所有日志文件,则数据库引擎可以完全重新创建数据库文件。
希望有帮助,
-马丁