2013-03-16 24 views
7

Mam procedurę przechowywaną, która trwa około 5-8 minut, aby wykonać. Użytkownik po prostu widzi komunikat "Proszę czekać na wygenerowanie raportu" Jest bardzo prawdopodobne, że ludzie mogą pomyśleć, że przestał działać ... lub coś poszło nie tak ...Bardzo długi stan procedury przechowywanej

Czy jest jakikolwiek sposób procedura przechowywana może zachować status powrotu podczas wykonywania ..?

na przykład:

{logical block 1} 
logical block 1 completed! 
{logical block 2} 
logical block 2 completed! 
{logical block 3} 
logical block 3 completed! 

Jeśli tak, proszę mi również powiedzieć mi, jak mam złapać tych statusów C#.

Dzięki chłopaki.

+0

czy masz odpowiednie indeksy? –

+0

Tak. Procedura składowana nie jest najlepsza. Ale tak właśnie będzie w przypadku pierwszej wersji strony. –

+0

Nie chcę teraz zwiększać wydajności SP. Wystarczy przechwycić status procedury przechowywanej. –

Odpowiedz

0

Interesujące! Czy spojrzałeś na mało poważny RAISERROR? Spójrz na this article

3

Można użyć zdarzenia InfoMessage do odbierania wiadomości PRINT i RAISERROR na kliencie.

Jeśli to nie zadziała, obawiam się, że trzeba podzielić procedurę przechowywaną na wiele mniejszych procedur, aby uzyskać status na każdym etapie.

Powiązane problemy