3

ファイルFが使用可能なSQLite3データベースであるかどうかを確認するための簡単なCプログラムを作成しています。

ファイルにジブリッシュを書き込もうとしましたが、0test.dbsqlite3_open("test.db", &db)返されました。

私はどちらかを推測するかsqlite3_status()sqlite3_db_status()私がやりたいことをしますが、ドキュメントには別のことが記載されています。

4

2 に答える 2

4

このスレッドをチェックしてください。

sqlite3_openファイルがデータベースでなくてもSQLITE_OKを返すようです。ただし、ステートメントを実行しようとすると、SQLITE_NOTADBが取得されます。SELECT * FROM sqlite_master;ヘッダーを読み取る代わりに、データベースを開いた後、SQLITE_NOTADBが返されるかどうかを確認するようなことを行うことができます。さらに一歩進んで、返されたデータを使用して、すべてのテーブルが存在することを確認できます。

于 2012-11-02T01:15:41.987 に答える
1

ファイルは固定ヘッダーで始まる必要があります。有効なファイルを認識したい場合は、それで問題ありません。

于 2012-11-02T00:28:32.363 に答える