PYODBC中的函数序列错误

2024-10-01 00:16:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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]Function sequence error (0) (SQLFetch)')

我能知道是什么引起了这样的问题吗?我怎样才能解决它?

谢谢。


Tags: 数据代码数据库sqlserverdriverconnectcon
1条回答
网友
1楼 · 发布于 2024-10-01 00:16:01

我相信你的问题是奇怪的声明。插入或更新记录时,您只需commit,而不需要选择。

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

而且,在将来使用commit,同时使用cursor.commitcon.commit执行相同的操作时,您只需要一个。

最后,我习惯了用第二个参数作为元组调用execute:

cursor.execute(SQL_command, (queueNumber,))

这种方法适用于pyodbc,但不是DB API标准。

相关问题 更多 >