我可以使用pyodbc包将文本和整数数据插入MS Access db(.mdb)。但现在我想插入大型二进制对象。我有一个表,包括ID(COUNTER类型),Name(VARCHAR类型),File(LONGBINARY类型),Author(VARCHAR类型)列。我使用该代码插入一些文本和int数据:
cursor.execute("""INSERT INTO table(ID, Name) VALUES(1,'book')""")
之后我使用了该代码,但总是收到错误。
with open('c:/tree.jpg', 'rb') as file:
binData = file.read()
SQL = """INSERT INTO table VALUES(2,'threePicture', %s, 'Mike')""" %(binData)
cursor.execute(SQL)
错误是:编程错误:('42000',“[42000])
答案 0 :(得分:1)
我发现解决方案使用? ? ?字符...
cursor.execute("insert into table values(?, ?, ?, ?)", 2, 'treePicture', pyodbc.Binary(binData), 'Mike')
使用?表达中值的字符。