我正在使用pyodbc连接到数据库并从中提取某些数据。
这是我的代码:

con = pyodbc.connect("driver={SQL Server};server= MyServer;database= MyDatabase;trusted_connection=true")

cursor = con.cursor()

SQL_command = """
                      SELECT RowID = ISNULL
                      (
                          (
                              SELECT TOP 1 RowID
                              FROM [MyDatabase].[admin].[MyTable]
                              WHERE [queue] = ? and processed IS NULL
                          )
                          ,-1
                      )
                  """

cursor.execute(SQL_command, queueNumber)

cursor.commit()

con.commit()

result_set = cursor.fetchall()

在运行上述代码之后,我得到了以下错误:
pyodbc.error:('hy010','[hy010][microsoft][odbc SQL Server
driver]函数序列错误(0)(sqlfetch)')
我能知道是什么引起了这样的问题吗?我怎样才能解决它?
谢谢。

最佳答案

我相信你的问题是奇怪的说法。您只需在插入或更新未选择的记录时commit

cursor.execute(SQL_command, queueNumber)
result_set = cursor.fetchall()

另外,在将来使用commit时,同时使用commit,cursor.commit做同样的事情,您只需要一个。
最后,我将习惯于用第二个参数作为元组调用execute:
cursor.execute(SQL_command, (queueNumber,))

您使用它的方式适用于con.commit但不是DB API标准。

关于python - PYODBC中的函数序列错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25769043/

10-14 04:00