Pypyodbc无效的参数类型

时间:2018-02-09 21:05:40

标签: python sql pypyodbc

我正在尝试使用以下代码查询数据库:

def check_entry(self, contest_id, number):
    print("Contest id: {0}, Number: {1}".format(contest_id, number))
    self._db_cursor.execute("""SELECT * FROM Entry WHERE ContestID LIKE ? AND Number Like ?""",
                            (contest_id, number))
    row = self._db_cursor.fetchone()
    if row:
        return row
    else:
        return None

这一直在努力,但我在代码中改变了看似无关的东西,现在我收到了这个错误:

pypyodbc.ProgrammingError: (u'42000', u'[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Argument data type image is invalid for argument 2 of like function.')

错误消息很简单,但数据类型图像中没有任何内容应该在此函数附近。最初我传递的是一个附有图像数据的对象。我在代码中设置了一个断点,并验证了对象上的contest_id和number属性是正确的数据类型。它们是,但为了安全起见,我将它们单独传递(未连接到对象),并将它们打印到控制台。当错误发生时(或永远),数据类型图像都不是,这就是为什么我完全迷失了如何解决它。有谁知道这可能的原因?

编辑:我更新了以下内容:

self._db_cursor.execute("""SELECT * FROM Entry WHERE ContestID LIKE ? AND Number Like ?""",
                        (int(contest_id), int(number)))

并且错误仍然存​​在。图像数据传递给此的概率接近0%。即使这样,确实存在的图像数据也是varbinary(max),因为不推荐使用image数据类型。

0 个答案:

没有答案