本文介紹了在從Python pyodbc調用SQL Server中的存儲過程時遇到問題的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
這是一個常見的問題,如果是這樣的話,我已經從其他問題中獲得了一些好的線索,但我仍然沒有成功。
我在SQL Server中有一個復雜的存儲過程,它執行一系列操作來填充表。它不接受任何參數,也不返回任何字段。在我調用SP之后,我查詢表–我需要成批處理大量數據,這很好用。從Python調用SP是最困難的部分。
def executeSP():
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' +
server+';DATABASE='+database+';UID='+username+';PWD=' + password)
cnxn.autocommit = True
cursor = cnxn.cursor()
cursor.execute("SET NOCOUNT ON; exec [schema].[SPName]")
cursor.close()
del cursor
cnxn.close()
我將NOCOUNT設置為ON,這樣,在返回之前,python將等待SP完成。但當我運行此命令時,系統不會調用SP。相同的連接參數可用于查詢相同模式中的表。不會產生任何錯誤。
我沒有主意了。
推薦答案
將NOCOUNT設置為ON并不總是足夠。可以肯定的是,循環直到pyodbc認為沒有更多的結果集,或者您可以在執行完成之前取消執行。例如
cursor.execute(sql)
while cursor.nextset():
pass
cursor.close()
這篇關于在從Python pyodbc調用SQL Server中的存儲過程時遇到問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,