我正在使用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])
然而,相同的代码在现场工作正常。
我已经在各种论坛中浏览了这么多帖子,但它们似乎都有误导性,我真的很困惑。
我的实际问题是什么?你有什么建议?
编辑:我添加了查询。
答案 0 :(得分:1)
我知道这是一个超级旧的线程,但是我遇到了同样的问题,而我的解决方案是将变量类型转换为类型。例如:
query = u"UPDATE table SET column1=? WHERE column2=?"
cursor.execute(query,[str(param1), str(param2)])
在这种情况下,参数的类型实际上并不重要,因为它将转换为字符串。