平台:Firefox 3.6.13,Python 2.7无堆栈和Windows 7(尚未在Ubuntu上测试,我会...)
我尝试使用apsw库:
conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY )
我收到了错误:
文件“c:\ apsw \ src \ statementcache.c”, 第386行,在sqlite3_prepare中 apsw.BusyError:BusyError:数据库是 锁定
我看到“SQLite manager”也可以在Firefox运行时打开数据库。
我只想打开并阅读,我觉得无故障操作。我不能使用“SQLite manager”。我需要编写我的Python(或PHP或Perl)脚本。
1)Firefox在SQLite文件中使用哪种锁?为什么呢?
2)“SQLite manager”如何运作?
Q2)SQLite Manager在Firefox中运行,因此它可以访问数据库。
这不是我要找的:在Firefox运行时,外部应用程序读取位置。
答案 0 :(得分:5)
我不确定Firefox使用的锁类型,但我建议这样做:
将Firefox数据库文件复制到其他临时位置并从那里读取(这也降低了意外损坏原始文件的风险)。
我在Firefox 3上没有遇到过这种方法的问题。*。
答案 1 :(得分:3)
Firefox使用SQLite获取数据库上的EXCLUSIVE锁,这就是您无法打开它的原因: http://www.sqlite.org/pragma.html#pragma_locking_mode