> Tech > Pas à  pas

Pas à  pas

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Le listing 1 montre le code Visual Basic .NET qui met en oeuvre le formulaire Windows pour l'application de synchronisation. (Pour faciliter la lisibilité, j'ai supprimé tout le code généré par Visual Studio Designer qui représente les objets UI sur le formulaire Windows.)
Nous allons donc construire cette

Pas à  pas

application exemple :
créer un projet Visual Studio .NET, coder l’application en
Visual Basic .NET et déployer l’application.

Mettre en forme le projet.
L’utilisation du contrôle Merge
dans une application .NET présente un inconvénient : le
contrôle Merge est du code non géré. Pour programmer visà –
vis du contrôle, il faut utiliser une interface gérée
System.Interop que le .NET Framework requiert quand on
accède à  du code non géré à  partir d’environnements gérés.
Heureusement, quand on utilise Visual Basic .NET pour
construire cet exemple, l’environnement de développement
génère l’habillage System.Interop requis pour ce contrôle
ActiveX non géré.
Après avoir créé un nouveau projet d’application Visual
Basic Windows Forms en Visual Basic .NET, ajoutez les références
du projet pour les contrôles de réplication Merge et
Error. (Quand SQL Server 2000 est installé, les contrôles
ActiveX sont aussi installés et enregistrés avec l’OS
Windows.) Pour ajouter les références, cliquez sur Add
Reference dans le menu Project puis, dans le menu Add
Reference, sélectionnez Microsoft SQL Merge Control 8.0 et
Microsoft SQL Replication Errors 8.0 dans la liste des composants
COM disponibles.

Construire l’UI.
Après avoir mis en place le projet, il faut
créer le formulaire en ajoutant les huit contrôles Windows
Forms suivants :

  • cmdSync – un contrôle Button pour synchroniser l’abonnement
  • barSyncProgress – un contrôle ProgressBar qui montre
    l’avancement de la synchronisation

  • txtPublisherServer – un contrôle TextBox qui spécifie le
    Publisher

  • txtPublicationDB – un contrôle TextBox qui spécifie la base
    de données de publications

  • txtSubscriberServer – un contrôle TextBox qui spécifie le
    Subscriber

  • txtSubscriptonDB – un contrôle TextBox qui spécifie la
    base de données d’abonnements

  • cmdCancel – un contrôle Button pour annuler l’opération
    de synchronisation

  • cmdClose – un contrôle Button pour fermer l’application

Définir les propriétés de contrôle.
Quand vous dessinez le
formulaire, Visual Studio crée automatiquement dans la page
code behind du formulaire le code qui met en oeuvre les
composants UI. A ce code Visual Basic .NET du projet, vous
devez ajouter le code de synchronisation du listing 1. En référençant
les objets dans le code, vous devriez normalement
qualifier entièrement le nom de chaque objet avec la référence
namespace de l’objet. Mais vous pouvez économiser
beaucoup de code en ajoutant des directives Imports qui référencent
ces namespaces, comme le montre le code du renvoi
A dans le listing 1.
Au renvoi B, le code instancie un objet SQLMerge et un
objet SQLReplError. Vous utilisez le mot-clé WithEvents pour
activer la fonctionnalité de rappel sur l’objet SQLMerge. Le
code du renvoi C définit un handler pour cette fonctionnalité
de rappel, que j’expliquerai plus loin. A noter que vous
devez déclarer l’objet SQLMerge au niveau module si vous
voulez utiliser la fonctionnalité rappel.
Dans l’application exemple, le code qui synchronise
l’abonnement se trouve dans la méthode cmdSync_Click et
s’exécute en réponse à  l’événement Click du bouton
cmdSync. Dans cette méthode, vous définissez les propriétés
objet SQLMerge pour l’abonnement pull, comme le
montre le code du renvoi D.

Activer le Merge Agent.
Après avoir défini les propriétés
Merge Agent par l’intermédiaire de l’objet SQLMerge, il faut
ordonner à  l’agent de synchroniser l’abonnement. Pour cela,
utilisez les méthodes Initialize, Run et Terminate de l’objet
SQLMerge, comme le montre le code du renvoi E. En Visual
Basic .NET, vous devriez appeler ces méthodes dans une instruction
Try/Catch pour traiter correctement d’éventuelles
erreurs.

Traiter les erreurs.
La réplication offre un contrôle séparé
de traitement des erreurs, utile pour donner aux utilisateurs
des informations détaillées sur les erreurs. Le contrôle Microsoft SQL Replication Errors 8.0 met en oeuvre à  la fois une classe
SQLReplError et une collection SQLReplErrors. Quand une erreur de réplication
se produit, l’objet SQLMerge ajoute une référence à  la collection d’erreurs dans la
propriété ErrorRecords. Le code du renvoi F du listing 1 montre comment traiter
les erreurs de réplication survenant pendant la synchronisation et comment circuler
au travers des erreurs dans la collection. Cette section de code recherche
dans l’objet SQLMerge les éventuels objets SQLReplError dans la collection
ErrorRecords, susceptibles d’indiquer les erreurs survenues pendant la synchronisation.
Si des erreurs sont présentes, le code interroge chaque erreur et utilise
l’information ainsi obtenue pour rédiger des messages d’erreur qu’il affichera dans
l’UI.

Utiliser l’événement Status.
Les contrôles de réplication ActiveX renseignent
sur l’avancement et le résultat de la synchronisation, en utilisant une fonction de
rappel appelée événement Status. Cette fonctionnalité fournit à  la fois une barre
de progression qui montre le pourcentage atteint pendant de longs processus,
comme le montre la figure 2, et une chaîne de messages qui décrit le résultat de la
synchronisation, comme on le voit figure 3. Pour mettre en oeuvre l’événement
Status dans un environnement de code géré comme Visual Basic .NET, il faut utiliser
SQL Server 2000 Service Pack 3 (SP3).
Le renvoi G du listing 1 montre la méthode qui traite l’événement Status. Je
rappelle que pour utiliser l’événement Status, il faut déclarer myMergeObj au
niveau module en utilisant le mot-clé WithEvents. Cette routine renvoie un code
SUCCESS au contrôle Merge. Si on donne la valeur de renvoi CANCEL à  ce
gestionnaire d’événements, on annule le processus de synchronisation. Le fait
d’appeler la méthode DoEvents met à  jour la barre de progression. A noter qu’il
faut une ligne de code de plus pour que le gestionnaire d’événements du renvoi
G fonctionne ; le renvoi C montre le code qui ajoute un gestionnaire pour
l’événement Status.

Déployer l’application.
Après avoir codé l’application, vous la compilez dans un
exécutable .NET en utilisant la fonctionnalité build de Visual Studio .NET. En plus
de l’exécutable, Visual Studio .NET crée deux fichiers .dll – Interop.
SQLMERGXLib.dll et InteropREPLERRXLib.dll – qui contiennent les contrôles
Merge et Error ActiveX et leurs habillages de code géré. Pour déployer cette
application, copiez simplement ces trois fichiers dans le même répertoire sur un
ordinateur exécutant SQL Server 2000.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010