Firefox locks places.sqlite

Firefox locks places.sqlite,firefox,sqlite,Firefox,Sqlite,平台:Firefox 3.6.13、Python2.7 stackless和Windows7(尚未在Ubuntu上测试,我会…) 我尝试使用apsw库: conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY ) 我得到了一个错误: 文件“c:\apsw\src\statementcache.c”, 第386行,在sqlite3中 apsw.BusyError:BusyError:数

平台:Firefox 3.6.13、Python2.7 stackless和Windows7(尚未在Ubuntu上测试,我会…)

我尝试使用apsw库:

conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY )
我得到了一个错误:

文件“c:\apsw\src\statementcache.c”, 第386行,在sqlite3中 apsw.BusyError:BusyError:数据库为 锁定

我看到“SQLite管理器”可以在Firefox运行时打开数据库

我只想打开并阅读,我认为这是一个无故障的操作。我不能使用“SQLite管理器”。我需要编写Python(或PHP或Perl)脚本

1) Firefox在SQLite文件上使用哪种类型的锁?为什么?

2) “SQLite管理器”是如何工作的


问题2)SQLite Manager在Firefox内部的JavaScript中工作,因此它可以访问数据库


这不是我要找的:一个外部应用程序在Firefox运行时读取places。

Firefox使用SQLite获取数据库的独占锁,这就是为什么您无法打开它:

我不确定Firefox使用的锁类型,但我建议:

将Firefox数据库文件复制到不同的临时位置并从那里读取(这也降低了意外损坏原始文件的风险)


我在Firefox 3上还没有遇到过这种方法的问题。*.

我的方法是将places.sqlite复制到另一个文件并打开它。顺便说一句,我最近在打开Firefox 4的places.sqlite时遇到了问题。阅读它似乎需要SQLite 3.7,但它尚未集成到所有第三方语言包装中(较旧版本会出现“db is encrypted”错误)。所以也要注意这个问题。多亏了你的提示,我让sqlite 3.7在Firefox4.0places.sqlite上运行。但是,我正在寻找ADO.NET解决方案,而sqlite-dotnet-x86-1006900.exe不适用于PowerShell(可能是调试版本)。我发现,当它尝试从数据库读取时(复制了d个历史记录),有时它不会被更新它似乎一直锁着