seid ein paar Tagen versuche ich Binärdatein in meine MySQL Datenbank zu speichern.
Diese Daten sind nichts anderes als gepackte cPickle Objekte.
Dazu möchte ich eigentlich die Funktion von mySQL nutzen coursor.execute(Anweisung, Argument).
Leider wird mir dann ständig gesagt, dass die MySQL-Syntax falsch wäre.
Hänge ich aber die Argumente direkt an geht es, ob wohl ich sonst nichts geändert habe.
Code: Alles auswählen
def schreibe(self,name,obj,zeit): # geht nicht
p=cPickle.dumps(obj,-1)
c=zlib.compress(pickledata)
blob= MySQLdb.escape_string(c)
sqlargs=(name,zeit,blob)
CMD="INSERT INTO %s (zeit,obj) VALUES(%s,'%s');"
ret=self.execute(CMD,sqlargs)
return ret
Code: Alles auswählen
def schreibe(self,name,obj,zeit): # geht
p=cPickle.dumps(obj,-1)
c=zlib.compress(p)
blob= MySQLdb.escape_string(compressed)
sqlargs=(name,zeit,blob)
CMD="INSERT INTO %s (zeit,obj) VALUES(%s,'%s');"%sqlargs
ret=self.execute(CMD)
return ret
dass es unter Windows läuft und unter Linux eine decoding error gibt.
Code: Alles auswählen
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9c in position 64: ordinal not in range(128)
Bin daher für jede Hilfe dankbar.
Gruß der KC.