使用pyodbc将长二进制数据插入Access数据库

时间:2014-04-27 22:23:19

标签: sql ms-access python-2.7 pyodbc

我可以使用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])

1 个答案:

答案 0 :(得分:1)

我发现解决方案使用? ? ?字符...

cursor.execute("insert into table values(?, ?, ?, ?)", 2, 'treePicture', pyodbc.Binary(binData), 'Mike')

使用?表达中值的字符。