2016-04-25 75 views
0

我有以下代碼,並且存儲過程用於調用多個存儲過程。我可以運行存儲過程,它將在SQL 2012中沒有問題的情況下完成。我正在使用Python 3.3。PyODBC執行存儲過程不完成

cnxn = pyodbc.connect('DRIVER={SQL Server};Server=.\SQLEXPRESS;Database=MyDatabase;Trusted_Connection=yes;') 
cursor = cnxn.cursor() 

cnxn.timeout = 0 
cnxn.autocommit = True 

cursor.execute("""exec my_SP""") 

python代碼正在執行,我從插入大量打印件確定了這一點。 我看到了另外一個關於python等待SP完成的問題。我嘗試在執行後添加'time.sleep()',並改變時間(最長120秒)不變。 根據結果,存儲過程顯示爲部分執行。數據表明它甚至中斷了其中一個子存儲過程,但當SP從查詢分析器運行時,它仍然很好。

我最好的猜測是這是SQL配置相關的東西,但我迷失在哪裏看。

有什麼想法?

回答

0

只是跟進;我使用位於下面鏈接的時間特徵取得了有限的成功,並降低了嵌套存儲過程的級別。

在我上面提到的級別中,有4層嵌套的SP;當你有3層或更少的層面時,pyodbc似乎表現得更好一些。對我來說沒有多大意義,但它有效。

make python wait for stored procedure to finish executing

上這背後的基本原理的任何輸入,將不勝感激。

0

將SET NOCOUNT OFF添加到我的proc爲我工作。