2011-01-16 1 views
2

Plattform: Firefox 3.6.13, Python 2.7 stackless und Windows   7 (noch nicht auf Ubuntu getestet, ich will ...)Firefox Schlösser places.sqlite

ich mit der apsw Bibliothek versucht:

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

Und ich habe den Fehler:

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

ich sehe "SQLite Manager" kann die Datenbank öffnen, auch mit Firefox läuft.

Ich möchte nur öffnen und lesen, ich denke eine problemlose Operation. Und ich kann nicht "SQLite Manager" verwenden. Ich muss mein Python (oder PHP oder Perl) Skript kodieren.

1) Welche Art von Sperre verwendet Firefox in der SQLite-Datei? Warum?

2) Wie funktioniert "SQLite-Manager"?

Q2) SQLite Manager funktioniert in JavaScript, in Firefox, so dass es auf die Datenbank zugreifen kann.

Das ist nicht, was ich suche: Eine externe Anwendung liest Orte, während Firefox läuft.

+0

Mein Hack ist es, places.sqlite in eine andere Datei zu kopieren und diese zu öffnen. – barrycarter

Antwort

3

Ich bin nicht sicher über den Lock-Typen Firefox verwendet, aber ich würde dies empfehlen:

Kopieren Sie die Firefox-Datenbankdatei an einen anderen temporären Speicherort und lesen Sie sie von dort (dies verringert auch das Risiko, versehentlich die ursprüngliche Datei zu beschädigen).

Ich hatte noch keine Probleme mit dieser Methode auf Firefox 3. *.

+2

BTW, Ich hatte kürzlich Probleme mit dem Öffnen der places.sqlite von Firefox 4. Es scheint, als ob das Lesen SQLite 3.7 erfordert, das noch nicht in alle Fremdsprachen-Wrapper von Drittanbietern integriert ist (ältere Versionen erhalten einen Fehler "db is encrypted") . Achte also auch auf dieses Problem. – Amos

+0

Dank deines Hinweises habe ich sqlite 3.7 mit Firefox 4.0 places.sqlite laufen lassen. Aber ich bin auf der Suche nach der ADO.NET-Lösung und sqlite-dotnet-x86-1006900.exe funktioniert nicht mit PowerShell (möglicherweise ein Debug-Build) –

+0

Ich finde das, wenn es versucht, aus der Datenbank zu lesen (d kopiert Geschichte) Manchmal wird es nicht aktualisiert ..:/Es scheint gesperrt zu bleiben – michelle