Firefox 锁定 place.sqlite

发布于 2024-10-12 10:11:49 字数 679 浏览 2 评论 0原文

平台:Firefox 3.6.13、Python 2.7 stackless 和 Windows 7(尚未在 Ubuntu 上进行测试,我会...)

我尝试使用 apsw 库:

conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY )

但出现错误:

文件“c:\apsw\src\statementcache.c”, sqlite3_prepare 中的第 386 行 apsw.BusyError:BusyError:数据库是 已锁定

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

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

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

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


Q2) SQLite Manager 在 Firefox 中以 JavaScript 运行,因此它可以访问数据库。

这不是我想要的:在 Firefox 运行时读取位置的外部应用程序。

Platform: Firefox 3.6.13, Python 2.7 stackless, and Windows 7 (not yet tested on Ubuntu, I will...)

I tried with the apsw library:

conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY )

And I got the error:

File "c:\apsw\src\statementcache.c",
line 386, in sqlite3_prepare
apsw.BusyError: BusyError: database is
locked

I see "SQLite manager" can open the database also with Firefox running.

I just want to open and read, I think a trouble free operation. And I cannot use "SQLite manager". I need to code my Python (or PHP or Perl) script.

1) Which type of lock does Firefox use on the SQLite file? Why?

2) How does "SQLite manager" work?


Q2) SQLite Manager works in JavaScript, inside Firefox, so it can access the database.

This is not what I am looking for: An external application reading places while Firefox is running.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如歌彻婉言 2024-10-19 10:11:49

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

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

我在 Firefox 3.* 上使用此方法还没有遇到问题。

I am not sure about the lock type Firefox uses, but I'd recommend this:

Copy the Firefox database file to a different temporary location and read it from there (this also lowers the risk of accidentally damaging the original file).

I haven't had problems with this method yet on Firefox 3.*.

浪菊怪哟 2024-10-19 10:11:49

Firefox 使用 SQLite 来获取数据库的独占锁,这就是你无法打开它的原因:
https://www.sqlite.org/pragma.html#pragma_locking_mode

Firefox uses SQLite to obtain an EXCLUSIVE lock on the database, which is why you cannot open it:
https://www.sqlite.org/pragma.html#pragma_locking_mode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文