2012-02-09 56 views
0

我正在使用Report Viewer 2008生成使用存儲過程(SQL Server 2008)來填充它的報告。報告正確生成。這個報告需要一段時間才能生成,因爲它很大。在加載報告時,如果用戶關閉瀏覽器窗口,該存儲過程會一直執行,直到完成(即使沒有報告顯示...)。問題是這會殺死服務器處理器,特別是如果這是由多個用戶完成的,並且一旦關閉它們就會重新打開並再次加載,導致存儲過程由同一用戶同時運行兩次。報告查看器不會停止窗口關閉時的存儲過程

有沒有辦法強制存儲過程在瀏覽器關閉後停止執行?預先感謝您的幫助!

+0

好吧apperantely有沒有解決這個...下面是我找到的參考... http://stackoverflow.com/questions/1305200/stored-proc-and-program-are-still-running-even-儘管 - 瀏覽器關閉 – 2012-02-09 17:21:46

回答

0

看一看DBCommand.Cancel()

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.cancel.aspx

您可以在顯示您的報告形式的登記的closeEvent,當窗體關閉,嘗試取消的聲明,以及。

+0

即時通訊報告服務器運行報告。 Theres沒有形式,我可以從中訪問一個關閉事件。任何其他想法? – 2012-02-09 16:53:35

+0

我明白了,對不起,我認爲這是一個WindowsForms應用程序。我沒有其他想法...你有沒有在瀏覽器中的任何控制?如果你可以在那裏添加一個JavaScript,你可以在離開事件上註冊,至少你會趕上訪問者離開/關閉瀏覽器窗口。 – 2012-02-09 16:57:38

+0

不幸的是,沒有涉及代碼,因爲它直接訪問rdl文件,所以我沒有辦法插入任何代碼來停止SP。 :( – 2012-02-09 17:06:57