python:无效的数据类型(0)(SQLBindParameter)

huz*_*yfe 3 python pyodbc freetds

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

('HY004', '[HY004] [FreeTDS][SQL Server]Invalid data type (0) (SQLBindParameter)')
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

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

但是,live 上的相同代码可以正常工作。

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

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

编辑:我添加了查询。

Mat*_*ord 5

我知道这是一个超级旧的线程,但我遇到了同样的问题,我的解决方案是对变量进行类型转换。例如:

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

cursor.execute(query,[str(param1), str(param2)])
Run Code Online (Sandbox Code Playgroud)

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

  • 有趣的是,两年后我在这里遇到了同样的问题并找到了自己的答案..但不能给自己投票.. (2认同)