Obtenir le statut Progress d'un SP exécuté depuis longtime dans Asp.net?

J'ai SP dans SqlServer (2005+) qui utilise le cursor et fait des choses (sur 10 000 lignes)

J'ai besoin de quelque chose comme une barre de progression (à voir sur mon site web ).

Je peux prendre les 10 000 divisé par 100 de telle sorte que chaque 1000 loggings qu'il fera (en utilisant la command d'printing sql): le process of another 1000 is done !!!

Mais je veux attraper cette printing (chaque nouvelle printing) dans mon site Web asp.net.

comment puis-je attraper les commands d'printing / ou y a-t-il une meilleure façon de faire cela?

Le process que nous avons utilisé pour mettre en œuvre quelque chose de similaire est un peu plus compliqué, mais cela fonctionne.

Nous avons créé un webservice qui avait un certain nombre de methods, par exemple;

 [SoapDocumentMethod(OneWay = true), WebMethod] public void StartUpdate(ssortingng reference) [WebMethod] public ProcessStatus GetProcessStatus(ssortingng reference) 

Un appel à la méthode web asynch lancerait le process et passerait un numéro de reference pour s'identifier. Ceci à son tour a appelé une procédure stockée qui a utilisé une mise à jour sur les itérations du slider pour mettre à jour une autre table avec 'reference', 'count' et 'statut'

GetProcessStatus transmet ensuite cette reference et renvoie le count et l'état en cours. Si le statut était terminé, nous pourrions continuer, sinon, vous pourriez utiliser le 'count' à ce stade pour mettre à jour le statut. Un exemple de ceci

 protected void Page_Load(object sender, EventArgs e) { this.JavaScript.Text = ssortingng.Format("<script>setTimeout(\"{0}\", {1});</script>", this.Page.GetPostBackClientEvent(this.btnRefresh, ""), 3000); ProcessStatus status= Class.GetProcessStatus(reference); lblCount.Text = status.Count.ToSsortingng(); if (import.Status == (int)ProcessStatus.Status.Complete) { Globals.GoUrl("/Import/File/Map.aspx"); } } 

J'espère que cela pourra aider.