SQLAlchemy:bytearray-upload在数据库中最终为NULL

时间:2018-10-12 13:49:39

标签: python sql-server sqlalchemy

我正在尝试将由字符串,varbinary和datetime对象组成的行批量插入MSSQL。

varbinary对象实际上是一张图片,并且在逐行插入这些行时可以很好地上传这些行:

sql = ('insert into %s '
             '(id,cover_big,date) '
             'values (?,?,?)' % dest_table_covers
         )
         cover_big = pyodbc.Binary(big_cover)
         vars = (id, cover_big, now)
conn.execute(sql, vars)  #conn is Engine()

但是当我尝试使用ORM时,big_cover总是以NULL结尾,而其他列包含预期的数据。

metadata = sqlalchemy.MetaData()
covers_table = sqlalchemy.Table(dest_table_covers,metadata,autoload=True,autoload_with=conn)
ins = covers_table.insert()
conn.execute(ins,cover_list)

有人可以看到我在做什么吗?我验证了(使用print()),两种情况下的数据均以bytearray(b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\...开头,但在第二种情况下,big_cover列的结尾均为NULL。

0 个答案:

没有答案