Firefox запирает места.

Платформа: 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" может открыть базу данных также с запущенным Firefox.

Я просто хочу открыть и прочитать, я думаю, что операция без проблем. И я не могу использовать "SQLite Manager". Мне нужно написать мой скрипт на Python (или PHP или Perl).

1) Какой тип блокировки Firefox использует в файле SQLite? Зачем?

2) Как работает "менеджер SQLite"?


Q2) SQLite Manager работает на JavaScript, внутри Firefox, поэтому он может обращаться к базе данных.

Это не то, что я ищу: внешнее приложение читает, когда запущен Firefox.

2 ответа

Решение

Firefox использует SQLite для получения ИСКЛЮЧИТЕЛЬНОЙ блокировки на базе данных, поэтому вы не можете открыть ее: http://www.sqlite.org/pragma.html

Я не уверен насчет типа блокировки, который использует Firefox, но я бы порекомендовал это:

Скопируйте файл базы данных Firefox в другое временное место и прочитайте его оттуда (это также снижает риск случайного повреждения исходного файла).

У меня еще не было проблем с этим методом в Firefox 3.*.

Другие вопросы по тегам