Cha*_*ame 10 python sql pyodbc
我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()
Run Code Online (Sandbox Code Playgroud)
运行上面的代码后出现以下错误:
pyodbc.Error:('HY010','[HY010] [Microsoft] [ODBC SQL Server驱动程序]函数序列错误(0)(SQLFetch)')
我可以知道是什么导致了这样的问题,我该如何解决?
谢谢.
Mar*_*ark 24
我相信你的问题是奇怪的commit陈述.您只需commit在插入或更新未选择的记录时.
cursor.execute(SQL_command, queueNumber)
result_set = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)
此外,将来使用commit,两者cursor.commit并con.commit做同样的事情时,你只需要一个.
最后,我习惯于将第二个争论作为元组调用execute:
cursor.execute(SQL_command, (queueNumber,))
Run Code Online (Sandbox Code Playgroud)
它的工作方式适用pyodbc但不是DB API标准.