【问题标题】:python: Invalid data type (0) (SQLBindParameter)python: 无效的数据类型 (0) (SQLBindParameter)
【发布时间】:2012-11-09 15:45:27
【问题描述】:

我将 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])

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

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

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

编辑:我添加了查询。

【问题讨论】:

  • 请分享实际代码,包括您尝试执行的查询。
  • @Martijn Pieters 感谢您的关注我已经用查询更新了问题。
  • param1 和 param2 中有什么?
  • 对不起,我应该说 param1 unicode 字符串 (),param2 是一个整数。
  • 这里可能是同样的问题stackoverflow.com/questions/947077/…

标签: python pyodbc freetds


【解决方案1】:

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

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

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

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

【讨论】:

  • 非常很有帮助
  • 有趣的是,两年后我在这里遇到了同样的问题并找到了我自己的答案..虽然不能给自己投票..
猜你喜欢
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多