sql >> Database >  >> RDS >> Sqlserver

pyodbc.Binary data (BLOB) invoegen in de SQL Server-afbeeldingskolom

Zorg er eerst voor dat je with open(..) om het bestand te lezen (een ander voorbeeld ). Dit sluit automatisch bestandsobjecten wanneer ze uitgeput zijn of er wordt een uitzondering gemaakt.

# common vars
connection = pyodbc.connect(...)
filename = 'Test.ics'
insert = 'insert into documents (name, documentType, document, customerNumber)'

# without hex encode
with open(filename, 'rb'):
    bindata = f.read()

# with hex encode
with open(filename, 'rb'):
    hexdata = f.read().encode('hex')

# build parameters
binparams = ('test200.ics', 'text/calendar', pyodbc.Binary(bindata), 1717)
hexparams = ('test200.ics', 'text/calendar', pyodbc.Binary(hexdata), 1717)

# insert binary
connection.cursor().execute(insert, binparams)
connection.commit()

# insert hex
connection.cursor().execute(insert, hexparams)
connection.commit()

# print documents
rows = connection.cursor().execute('select * from documents').fetchall()
for row in rows:
    try:
        # this will decode hex data we inserted
        print str(row.document).decode('hex')
    # attempting to hex decode binary data throws TypeError
    except TypeError:
        print str(row.document)

Ik gok dat je de 0x343234353... . krijgt gegevens door te kijken naar de resultaten in Management Studio:

Dit betekent niet dat de gegevens op deze manier worden opgeslagen, het is gewoon de manier waarop Management Studio image vertegenwoordigt , text , ntext , varbinary , etc. datatypes in het resultatenvenster.




  1. Laad gegevens van CSV in het bitveld in mysql

  2. PowerManager.PARTIAL_WAKE_LOCK Android

  3. Maak een nieuwe MySQL-database met Workbench

  4. MySQL MOD() is kapot:is dit het beste alternatief?