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.*.