如何用flask更新SQL Server中的varbinary(max)列?

问题描述 投票:0回答:1

我有一个City表格:

name | id | pic
-----+----+-----
A    | 1  | null
B    | 2  | null
C    | 3  | null
D    | 4  | null

我想更新此表的pic列,其中id为2。我该怎么办?

我的代码是:

file = request.files['file']
saveFileToDB = "UPDATE [Db2].[dbo].[City] SET (pic) VALUES (?) WHERE id = 2"
CU.execute(saveFileToDB, (file.read()))
CU.commit()

错误消息:

pyodbc.ProgrammingError:('42000',“ [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]'('附近的语法不正确。(102)(SQLExecDirectW); [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]语句无法准备。(8180)“

或:

saveFileToDB = "UPDATE [Db2].[dbo].[City] SET pic = Convert(Varbinary(max),'%s') WHERE id = 2"%file.read()

但是它不起作用。

sql sql-server flask pyodbc insert-update
1个回答
2
投票

您的更新语法已关闭。使用此版本:

file = request.files['file']

saveFileToDB = "UPDATE City SET pic = ? WHERE id = 2"
CU.execute(saveFileToDB, (file.read(),))
CU.commit()

[注意,我使用(file.read(),),并在其后加上逗号。这是为了确保Python将其读取为元组而不是标量变量。

© www.soinside.com 2019 - 2024. All rights reserved.