IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Ajax Discussion :

Update d'un control Label dans un loop


Sujet :

ASP.NET Ajax

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 27
    Points
    27
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    J'ai réalisé à peu près la même chose. Une appli web permettait d'importer un fichier avec un package SSIS, puis de relancer un process d'un cube OLAP dans SSAS.

    Pour ce faire, j'utilisais un indicateur booleen dans un table SQL. Dans la page ASPX, un petit javascript allait checker toutes les X secondes si le booléen était à true ou non. Et si non, il affichait une image du type ajax_loader par dessus le reste de la page.

    En espérant t'avoir aidé.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2010, 09h45
  2. Réponses: 1
    Dernier message: 15/06/2007, 13h13
  3. Réponses: 8
    Dernier message: 29/07/2006, 22h31
  4. [C#] Control user dans le code caché
    Par pc152 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/05/2004, 06h36
  5. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo