平台:Firefox 3.6.13、Python 2.7无堆栈和Windows 7(尚未在Ubuntu上测试,我将...)
我试过APSW库:
conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY )
我得到了错误:
sqlite3_prepare apsw中的文件“c:\apsw\src\statementcache. c”,第386行。繁忙错误:BusyError:数据库已锁定
我看到“SQLite管理器”也可以打开Firefox运行的数据库。
我只是想打开和阅读,我认为一个无故障的操作。而且我不能使用“SQLite管理器”。我需要编码我的Python(或PHP或Perl)脚本。
1)Firefox在SQLite文件上使用哪种类型的锁?为什么?
2)“SQLite管理器”是如何工作的?
Q2)SQLite管理器在Firefox内部的JavaScript中工作,因此它可以访问数据库。
这不是我要找的:Firefox运行时阅读位置的外部应用程序。
2条答案
按热度按时间j2cgzkjk1#
我不确定Firefox使用的锁类型,但我推荐:
将Firefox数据库文件复制到另一个临时位置并从那里读取(这也降低了意外损坏原始文件的风险)。
我在Firefox 3.* 上还没有遇到过这种方法的问题。
umuewwlo2#
Firefox使用SQLite获取数据库的EXCLUSIVE锁,这就是您无法打开它的原因:http://www.sqlite.org/pragma.html#pragma_locking_mode