试图使用ESENT

时间:2016-08-31 14:41:56

标签: visual-studio-2010 esent

我一直试图从MS ESENT doc运行样本,而另一个我发现,MS样本在VC ++ 2010 Express上很好地编译。但是,当我尝试任一程序时,我得到一个错误代码0f -1216记录为

  

在恢复开始或结束时检测到一个未完成的数据库附件,但数据库丢失或与附件信息不匹配。

由于这是新的发展,我不知道我可能需要做什么。有人看到过这个错误吗?

1 个答案:

答案 0 :(得分:1)

(对不起,这是几个月之后,也许会帮助其他人。)

您在开发过程中更有可能看到JET_errAttachedDatabaseMismatch。它通常是由删除一些ESE生成的文件引起的,但不是全部。如果删除数据库,还应删除日志文件。这种情况在开发期间很常见,当您尝试删除数据库时,但可能忘记删除其他文件。

创建新数据库时,会有一个与之关联的签名(时间戳和随机数)。您可以使用esentutl -mh foo.edb转储此内容。事务日志文件跟踪它引用的数据库的签名。如果从其他计算机复​​制具有相同名称的数据库文件,则签名将不匹配。这种不匹配有时会显示为JET_errAttachedDatabaseMismatch(但可能还有其他方式让它冒出来)。

JetInit有点名不副实。它启动日志文件重播。如果您拥有第1代的所有日志文件,则数据库引擎可以完全重新创建数据库文件。

希望有所帮助,

-Martin