Update d'un control Label dans un loop
Bonjour
J'ai une page web qui execute un job SSIS sur un serveur SQL. Cet évènement se produit sur le click d'un bouton de la page web.
Ce que j'aimerais, c'est d'informer l'usager durant l'exécution de ce job. Exemple : quand la mise à jour débute, quand la mise à jour se termine et afficher la progression en écrivant de petit "." dans le label durant l'exécution de la loop.
Est-ce possible ? Si oui, vous avez des suggestion car je n'ai rien trouvé sur internet pour me donner des istes de solution
Voici mon code (VB) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Imports Microsoft.SqlServer.Management
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Partial Class Private_gestionCube
Inherits System.Web.UI.Page
Protected Sub btnstartSSISJob_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnstartSSISJob.Click
Dim timeout As Integer = 3600
lblLogSSISJob.Text = "Début de la mise à jour des Cubes. Un moment S.V.P. ..."
Dim jobname As String = "jobSSIS_GestionIntervention"
Try
Dim con As New Microsoft.SqlServer.Management.Common.ServerConnection("LESERVEUR", "usager", "motdepasse")
'creation de l'objet serveur
Dim egbi2k5 As New Microsoft.SqlServer.Management.Smo.Server(con)
'execute le job si il existe.
If egbi2k5.JobServer.Jobs.Contains(jobname) Then
Dim oLastRunDate As DateTime = egbi2k5.JobServer.Jobs(jobname).LastRunDate
egbi2k5.JobServer.Jobs(jobname).Start()
Dim nb_sec As Integer = 0
While oLastRunDate = egbi2k5.JobServer.Jobs(jobname).LastRunDate
Console.Write(".")
egbi2k5.JobServer.Jobs(jobname).Refresh()
If nb_sec < timeout Then
nb_sec += 1
System.Threading.Thread.Sleep(1000)
Else
'envoi d'email
lblLogSSISJob.Text = "time out : le process est trop lent"
Console.WriteLine("time out: le process est trop lent")
End If
End While
lblLogSSISJob.Text = "La mise à jour du cube s'est terminée avec succès !"
Console.WriteLine("fin")
Return
Else
Return
End If
Catch ex As Exception
lblLogSSISJob.Text = "Il y a présentement déjà une mise à jour des cubes !"
End Try
End Sub
End Class |
Voici mon code (ASPX) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <%@ Page Title="" Language="VB" MasterPageFile="~/portailSPU.master" AutoEventWireup="false" CodeFile="gestionCube.aspx.vb" Inherits="Private_gestionCube" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="btnstartSSISJob" runat="server" Text="Démarrez la mise à jour du cube" />
<br />
<br />
<asp:Label ID="lblLogSSISJob" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content> |
Merci à tous et bonne journée
Richard