[英]Can't upload Images to MS Sql server via pyodbc
我正在嘗試使用python語言將圖像上傳到Linux(raspbian)環境中的MS SQL Web服務器。 到目前為止,我已經能夠連接到MS Sql,並且我已經創建了一個表。 和即時通訊使用pyodbc。
#! /user/bin/env python
import pyodbc
dsn = 'nicedcn'
user = myid
password = mypass
database = myDB
con_string = 'DSN=%s;UID=%s;PWD=%s;DATABASE=%s;' % (dsn, user, password, database)
cnxn = pyodbc.connect(con_string)
cursor = cnxn.cursor()
string = "CREATE TABLE Database1([image name] varchar(20), [image] varbinary(max))"
cursor.execute(string)
cnxn.commit()
此部分已編譯,沒有任何錯誤。 這意味着我已經成功創建了表格,不是嗎? 還是有什么問題?
我嘗試以此方式上傳圖片。
with open('new1.jpg','rb') as f:
bindata = f.read()
cursor.execute("insert into Database1(image name, image) values (?,?)", 'new1', bindata)
cnxn.commit()
我得到這部分的錯誤。 並且它pyodbc.ProgrammingError:('42000','[42000] [FreeTDS] [SQL Server] Satement無法准備。(8180)(SQLParamData)')
有人能幫助我嗎。 謝謝
您的參數必須作為一個序列傳遞,而不是作為兩個單獨的參數傳遞。 一個元組在這里會做的很好:
cursor.execute(
"insert into Database1([image name], image) values (?,?)",
('new1', pyodbc.Binary(bindata)))
注意,您還需要正確引用image name
列,並將數據包裝在pyodbc.Binary()
對象中; 這將為您的Python版本生成正確的數據類型( bytearray
或bytes
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.