bsddb - gescheite Doku? - open() / truncate()-Problem

12/12/2007 - 22:15 von tachy | Report spam
Hallo zusammen,

welche Doku / manual / Howto für Python / bsddb ist Eurer Meinung nach
zu empfehlen? Ich habe so den Eindruck, dass speziell hier das große
Chaos herrscht, was die genaue Beschreibung der bsddb-Methoden
betrifft

Speziell habe ich ein Prpblem, dass unter Windows und python 2.5.x der
truncate() nicht mehr funktioniert. Unter 2.3.x ging der selbe Code
mal einwandfrei. Es muss wohl mit der Art des Öffnens der DB zu tun
haben, momentan wird diese so geöffnet:

self.db.open("meine.db", None, bsddb.db.DB_HASH, bsddb.db.DB_CREATE)

keine Ahnung, ob das überhaupt stimmt

Wie muss ich denn eine DB öffnen, um sie 1. automatisch angelegt zu
bekommen, wenn das DB-File noch nicht existiert (funktioniert mit
obigem Code) und 2. so, dass sie mit der Funktion:

self.db.truncate()

gelöscht werden kann (funktioniert NICHT - der Inhalt bleibt
unveràndert, auch mit einem nachfolgenden:

self.db.sync()

ist da nix auszurichten

Habt Ihr nen Plan, was ich da machen soll? RTFM ist auch immer gern
mein gut gegebener Rat an andere, aber hier stehe ich wirklich selbst
auf dem Schlauch, mangels Manual...


Gruß,

Johannes
 

Lesen sie die antworten

#1 Florian Weimer
13/12/2007 - 20:23 | Warnen spam
* tachy:

welche Doku / manual / Howto für Python / bsddb ist Eurer Meinung nach
zu empfehlen?



Die Starting Guides von Oracle. Es gibt auch ein neues Berkeley-DB-Buch,
das beim Überfliegen einen recht brauchbaren Eindruck macht. Im Detail
gelesen habe ich es aber noch nicht. Die Code-Beispiele gehen allerdings
primàr von C++ aus.

Wie muss ich denn eine DB öffnen, um sie 1. automatisch angelegt zu
bekommen, wenn das DB-File noch nicht existiert (funktioniert mit
obigem Code) und 2. so, dass sie mit der Funktion:

self.db.truncate()

gelöscht werden kann (funktioniert NICHT - der Inhalt bleibt
unveràndert, auch mit einem nachfolgenden:



Wirklich Byte-weise unveràndert? Ist die Datenbank vielleicht schon
leer?

Ähnliche fragen