2009-04-15 45 views
1

我想知道是否有一種可靠/真實的方法來報告從.Net應用程序到其用戶的數據庫調用進度。我想知道是否可以真正指出完成的百分比,還是僅僅顯示「加載」動畫以表明發生了某些事情的最佳/唯一方法?從.Net調用SQL的進度條

此外,SQL2008是否可以解決任何人的知識?

回答

1

您必須確定性地加載內容。例如,如果你知道,你會獲取大量的數據,例如,你可以這樣做:

-GET所有記錄的計數 -GET其中500 -report狀態500 /總% -get 1000 500多個 -report狀態/總% -...繼續下去,直到你已經得到了他們所有的用戶已經取消

這將是令人難以置信的浪費在一些需要根本沒有時間,因爲去數據庫的事實是開銷的很大一部分。

0

你可以使用RAISERROR與沒有等待選項將消息發送回遠程呼叫者沒有結束sql事務。當然,這會打破慣常的try/catch慣例,所以謹慎行事。另一方面,「db調用」也可能指向還原或備份操作,在這種情況下,您可以簡單地使用SMO(服務器管理對象)庫中的進度事件。

此外,ORM解決方案(如Linq)可用於處理「db調用」,如批量更新操作。如果是這種情況,那麼這個答案可能是有用的: How can I get a percentage of LINQ to SQL submitchanges?