3

我将 python 2.7 用于特定工作。我正在使用 FreeTDS 连接到 MSSQL Server (2008)。我可以进行一些简单的选择查询,但是当我尝试运行参数化查询时出现错误:

('HY004', '[HY004] [FreeTDS][SQL Server]Invalid data type (0) (SQLBindParameter)')

这是我的查询:

query = u"UPDATE table SET column1=? WHERE column2=?"
cursor.execute(query,[param1, param2])

然而,现场相同的代码可以正常工作。

我在各种论坛上浏览了这么多线程,但它们似乎都具有误导性,我真的很困惑。

我的实际问题是什么,你有什么建议?

编辑:我添加了查询。

4

1 回答 1

7

我知道这是一个超级老线程,但我遇到了同样的问题,我的解决方案是输入变量。例如:

query = u"UPDATE table SET column1=? WHERE column2=?"

cursor.execute(query,[str(param1), str(param2)])

在这种情况下,参数的类型并不重要,因为它将被转换为字符串。

于 2019-10-09T19:14:17.040 回答