【发布时间】:2013-03-29 18:57:37
【问题描述】:
我有一个与 SQLite DB 交互的 java 程序,其中 journal_mode 为 delete。
这个程序适用于所有数据库,只要数据库的页面大小为 32 KB,我就可以进行事务。
但是有一个 sqlite DB 的页面大小为 64 KB。当我尝试执行
stmt.executeQuery();
在那个数据库上,它给了我例外
java.sql.SQLException: [SQLITE_NOTADB] 打开的不是数据库文件的文件(文件已加密或不是数据库)
谁能告诉我这可能是什么解决方案?此数据库未加密,且 journal_mode 仅作为删除。
我可以使用 SQLITESpy 工具打开这个数据库。
谢谢
【问题讨论】:
-
你能用其他 SQLite 工具打开那个文件吗?
-
是的,我可以用 sqlitespy 工具打开这个数据库。
-
SQLiteSpy 和 JDBC 驱动程序中
SELECT sqlite_version();和PRAGMA compile_options;的结果是什么? -
从程序,版本 = 3.6.20 但是当我尝试运行 PRAGMA compile_options;它给了我一个例外,说没有结果集。从 SQLiteSpy,版本 = 3.7.8 和 compile_options 是选项 ENABLE_COLUMN_METADATA、ENABLE_FTS1 等的列表。