python - SQLAlchemy:bytearray-upload 最终在 DB 中为 NULL
问题描述
我正在尝试将由字符串、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-columns 最终为 NULL。
解决方案
推荐阅读
- c++ - 下一个更大的元素
- vuepress - vuepress dev 没有在本地渲染
- redis - Redis 中的密钥丢失
- ios - 如何使用 Codable 和 Swift 解析这个嵌套的 JSON?
- python - 在python中将排序的链表合并到一个排序的链表时出错
- javascript - Javascript禁用鼠标光标并仅使用键盘光标
- reactjs - 如何解决 formData() 使用 axios 发送的问题
- python - karatsuba的整数乘法算法python
- r - 更改 R 中蜂群图中一个元素的颜色
- python-3.x - 在 matplotlib 中定义子图时如何使用循环?