adodbapi varbinary(max) >8000
Verfasst: Donnerstag 18. Juli 2013, 08:33
Hallöchen,
ich versuche mich gerade an einer kleinen Anwendung, die mir helfen soll, meine Musik zu organisieren. Dazu möchte ich Thumbnails in einer Datenbank (MS SQL Server 2008 R2) speichern.
Der Test-Code dafür sieht wie folgt aus:
hash ist in der DB vom Type varchar(50) und image_data vom Typ varbinary(max).
Wenn ich obigen Code nun mit einem Bild versuche, welches < 8Kb ist, funktioniert es, bei Bildgrößen jenseits der 8Kb nicht mehr.
Ich bekomme dann folgenden Fehler:
Kann mich bitte jemand in die richtige Richtung schubsen? Was mache ich falsch oder was fehlt denn, damit ich wirklich die 2GB eines varbinary(max) Feldes nutzen kann?
Vielleicht kann da jemand helfen.
Danke im Voraus, beste Grüße
~Mad
ich versuche mich gerade an einer kleinen Anwendung, die mir helfen soll, meine Musik zu organisieren. Dazu möchte ich Thumbnails in einer Datenbank (MS SQL Server 2008 R2) speichern.
Der Test-Code dafür sieht wie folgt aus:
Code: Alles auswählen
import adodbapi
import hashlib
conn_string = '''Driver={SQL Server Native Client 10.0};
Server=DBSMusic;
Database=CoverThumbs;
Trusted_Connection=yes;
'''
conn = adodbapi.connect(conn_string)
curs = conn.cursor()
file_path = r"C:\Dump\thumb_001.png"
with open(file_path, "rb") as _f_:
m = hashlib.md5()
img_data = _f_.read()
m.update(img_data)
the_hash = m.hexdigest()
thumb = adodbapi.Binary(img_data)
curs.execute("INSERT INTO thumbnails (hash, image_data) VALUES(?, ?)",
[the_hash, thumb])
Wenn ich obigen Code nun mit einem Bild versuche, welches < 8Kb ist, funktioniert es, bei Bildgrößen jenseits der 8Kb nicht mehr.
Ich bekomme dann folgenden Fehler:
Code: Alles auswählen
adodbapi.adodbapi.DatabaseError: (-2147352567, 'Exception occurred.', (0, u'Microsoft OLE DB Provider for ODBC Drivers', u'[Microsoft][SQL Server Native Client 10.0]String data, right truncation', None, 0, -2147217833), None)
Vielleicht kann da jemand helfen.

Danke im Voraus, beste Grüße
~Mad