带有pyodb的sql server返回值

2024-05-16 11:42:26 发布

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

我试图用pyodbc运行一些存储过程,并使用以下代码获取单个返回值:

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

cursor = conn.cursor()

SQL_command = """
                DECLARE @ret INT

                EXEC @ret = [dbo].proc_mySP             
                  @group= 0
                , @description =?

                SELECT @ret
              """

cursor.execute(SQL_command, description)
retValue = cursor.fetchall()

存储过程的框架如下:

-- SOME CODE
-- ......
-- EXEC another_sp
-- DECLARE @RET INT
-- SELECT @RET as retValue
-- ......

上面的sql在sql server中运行良好,但是当上面的Python代码调用它时,它会给出错误消息:

pyodbc.ProgrammingError: ('24000', '[24000] [Microsoft][ODBC SQL Server Driver]Invalid cursor state (0) (SQLNumResultCols)')

我能知道我的代码有什么问题吗?

非常感谢。


Tags: 代码sqlserver过程descriptionconnselectcursor