簡體   English   中英

如何獲取SQL Server 2008 R2中從python調用的存儲過程返回的值

[英]How to get the value returned by a stored procedure called from python in SQL server 2008 R2

我需要檢查SQL Server 2008 R2上存儲過程的返回值。

 import pyodbc
 sql_str  = """
                DECLARE @return_value int 
                SET @return_value  = -1 
                INSERT INTO [my_database].[dbo].[my_table] 
                EXEC @return_value = [my_database].[dbo].[my_stored_procedure] 
                if @return_value <> 0  
                BEGIN 
                    EXEC sys.sp_addmessage 60000, 16, ' test sp returns wrong code !  ' 
                        RAISERROR (60000, 16, 1) 
                END  
               """
sql_str_connect_db = " DRIVER={SQL server};SERVER={my_server};DATABASE={my_db};UID=my_id;PWD=my_password "
cnxn = pyodbc.connect(sql_str_connect_db )
cursor_test = cnxn.cursor()
cursor_test.execute(sql_str)
cnxn_test.commit()

但是,我得到了錯誤:

pyodbc.Error :(“ HY007”,“ [HY007] [Microsoft] [ODBC SQL Server驅動程序]關聯語句未准備好(0)(SQLNumResultCols)”)

並且,如何在python中檢查“ @return_value”的值?

搜索后,我找不到解決方案。

謝謝

您應該能夠在SQL中像這樣選擇它:

SELECT @return_value AS return_value

然后使用光標獲取記錄:

rows = cursor_test.fetchall()
    for row in rows:
        print(row.return_value)

問候,

-蒂姆

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM