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