0

私はMS ESENT ドキュメントからサンプルを実行しようとしており、別のドキュメントを見つけました。MS サンプルは VC++ 2010 Express でうまくコンパイルされます。ただし、いずれかのプログラムを試すと、次のように文書化されたエラーコード 0f -1216 が表示されます

リカバリの開始時または終了時に未処理のデータベース アタッチメントが検出されましたが、データベースが見つからないか、アタッチメント情報と一致しません。

これは新しい開発であるため、何をする必要があるのか​​ 途方に暮れています。このエラーを見た人はいますか?

4

1 に答える 1

1

(これは数か月後のことで申し訳ありませんが、他の誰かを助けるかもしれません。)

JET_errAttachedDatabaseMismatch開発中に表示される可能性が高くなります。多くの場合、すべてではなく、ESE で生成されたファイルの一部を削除することによって発生します。データベースを削除する場合は、ログ ファイルも削除する必要があります。このシナリオは、開発中にデータベースを削除しようとするときによく見られますが、他のファイルを削除するのを忘れる場合があります。

新しいデータベースが作成されると、それに関連付けられた署名があります (タイムスタンプと乱数)。でこれをダンプできますesentutl -mh foo.edb。トランザクション ログ ファイルは、参照するデータベースの署名を追跡します。別のマシンから同じ名前のデータベース ファイルをコピーすると、署名が一致しません。この不一致は、次のように表示されることJET_errAttachedDatabaseMismatchがあります (ただし、他の方法で発生する可能性があります)。

JetInitは少し間違った名前です。ログ ファイルの再生を開始します。第 1 世代のログ ファイルがすべてある場合、データベース エンジンはデータベース ファイルを完全に再作成できます。

それが役立つことを願って、

-マーティン

于 2016-10-27T19:02:03.210 に答える