Envoi de demandes SOAP à l'aide du client Visual Studio 2005 (Visual Basic)
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.
L'exemple présenté dans cette rubrique est semblable à celui fourni dans Envoi de demandes SOAP à l'aide du client Visual Studio 2005 (C#). La seule différence est que celui-ci est écrit en Visual Basic. Par conséquent, cette rubrique présente uniquement le code requis et les étapes à suivre pour créer l'exemple.
Création d'un exemple fonctionnel
En raison du grand nombre d'étapes nécessaires à la création de cet exemple, l'application est divisée en quatre parties :
Première partie : Exécutez la procédure stockée.
Deuxième partie : Exécutez la requête SQL sans paramètres.
Troisième partie : Exécutez la requête SQL avec paramètres.
Quatrième partie : Exécutez la fonction définie par l'utilisateur.
Un ensemble d'instructions est fourni pour chaque partie. À la fin de chaque partie, vous pouvez tester l'application.
Pour créer la classe proxy requise
Créez un dossier sur l'ordinateur pour cette application.
Sur l'ordinateur client, ouvrez le groupe de programmes Microsoft Visual Studio 2005 et lancez Microsoft Visual Studio 2005.
Cliquez sur Nouveau projet.
Sélectionnez Projets Visual Basic comme Type de projet.
Dans la zone de texte Nom, indiquez NativeSOAPApp2.
Dans la zone de texte Emplacement, spécifiez le chemin du dossier où vous souhaitez enregistrer le projet.
Sélectionnez Application Windows comme modèle, puis cliquez sur OK.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud Références et sélectionnez Ajouter une référence Web. Vous pouvez également ajouter une référence Web en sélectionnant dans le menu Projet l'option Ajouter une référence Web.
Dans la zone Adresse , tapez https://Server/sql?wsdl, où Server est le nom du serveur, puis appuyez sur ENTRÉE. Si la génération de WSDL réussit, vous verrez la description du point de terminaison. Cliquez alors sur AddReference. Vous créez ainsi les classes proxy requises, de sorte que vous pourrez appeler les méthodes du document WSDL.
Première partie : Exécuter la procédure stockée
Dans cette partie, l'application demande la méthode Web GetCustomerInfo.
Dans Form1, ajoutez une zone de texte (textBox1), un bouton (button1) et une zone de liste (listBox1).
Cliquez avec le bouton droit sur textBox1 et sélectionnez Propriétés. Modifiez la valeur de la propriété Text en remplaçant textBox1 par 1. Il s'agit de la valeur d'ID client par défaut.
Cliquez avec le bouton droit sur button1 et sélectionnez Propriétés.
Modifiez la valeur de la propriété Text en remplaçant button1 par ExecSP.
Affectez à la propriété (name) la valeur ExecSP.
Cliquez avec le bouton droit sur la zone de liste (listBox1) et sélectionnez Propriétés. Affectez à la propriété HorizontalScrollbar la valeur True.
Double-cliquez sur ExecSP.
Copiez vers cette fonction le code de la rubrique Code Visual Basic pour ExecSP.
Mettez le code à jour. Remplacez les références à server par le nom d'hôte identifié lors de la création du point de terminaison à l'aide de CREATE ENDPOINT.
Enregistrez et compilez le projet. Pour plus d'informations, reportez-vous à la section « Compilation du code ».
Deuxième partie : Exécuter la requête SQL sans paramètres
Dans cette partie, l'application cliente exécute une requête ad hoc (requête XML FOR) qui extrait trois employés de la table Employee de la base de données AdventureWorks2008R2.
Dans Form1, ajoutez un bouton (button1) à l'onglet [Design].
Cliquez avec le bouton droit sur le nouveau bouton et sélectionnez Propriétés.
Modifiez la valeur de la propriété Text en remplaçant button1 par ExecBatchFindAllEmps.
Affectez à la propriété (name) la valeur ExecBatchFindAllEmps.
Double-cliquez sur ExecBatchFindAllEmp.
Copiez vers cette fonction le code de la rubrique Code Visual Basic pour FindAllEmps.
Mettez le code à jour. Remplacez les références à server par le nom d'hôte identifié lors de la création du point de terminaison à l'aide de CREATE ENDPOINT.
Enregistrez et compilez le projet. Pour plus d'informations, reportez-vous à la section « Compilation du code ».
Troisième partie : Exécuter la requête SQL avec paramètres
Cette partie est semblable à la précédente, à cette différence près que la demande SOAP associée à la requête ad hoc comprend un paramètre. La requête XML FOR extrait les informations relatives à un employé spécifique.
Dans Form1, ajoutez un bouton (button1) à l'onglet [Design].
Cliquez avec le bouton droit sur le nouveau bouton et sélectionnez Propriétés.
Modifiez la valeur de la propriété Text en remplaçant button1 par ExecBatchFindAnEmp.
Affectez à la propriété (name) la valeur ExecBatchFindAnEmp.
Double-cliquez sur ExecBatchFindAnEmp.
Copiez vers cette fonction le code de la rubrique Code Visual Basic pour FindAnEmp.
Mettez le code à jour. Remplacez les références à server par le nom d'hôte identifié lors de la création du point de terminaison à l'aide de CREATE ENDPOINT.
Enregistrez et compilez le projet. Pour plus d'informations, reportez-vous à la section « Compilation du code ».
Quatrième partie : Exécuter la fonction définie par l'utilisateur
Dans cette partie, l'application cliente envoie une demande SOAP pour la méthode Web UDFReturningScalar. Cette méthode Web correspond à une fonction définie par l'utilisateur qui renvoie une valeur entière.
Dans Form1, ajoutez un bouton (button1) à l'onglet [Design].
Cliquez avec le bouton droit sur le nouveau bouton et sélectionnez Propriétés.
Modifiez la valeur de la propriété Text en remplaçant button1 par ExecUDFReturningScalar, puis
Affectez à la propriété (name) la valeur ExecUDFReturningScalar.
Double-cliquez sur ExecUDFReturningScalar.
Copiez vers cette fonction le code de la rubrique Code Visual Basic pour ExecUDF.
Mettez le code à jour. Remplacez les références au serveur par le nom d'hôte identifié lors de la création du point de terminaison à l'aide de CREATE ENDPOINT.
Enregistrez et compilez le projet. Pour plus d'informations, reportez-vous à la section « Compilation du code ».
Comme le point de terminaison indique le mode d'authentification intégrée, la ligne suivante apparaît dans le code : proxy.Credentials = System.Net.CredentialCache.DefaultCredentials.
Si vous utilisez le mode d'authentification SQL Server, il est recommandé de supprimer cette ligne et de la remplacer par un code qui implémente les en-têtes WS-Security dans les informations d'authentification SQL Server. Pour plus d'informations, consultez Authentification SQL Server sur SOAP.
Notes
Si vous utilisez l'authentification SQL Server ou l'authentification de base, SQL Server impose le recours au protocole SSL (Secure Sockets Layer) afin de sécuriser la transmission chiffrée des informations d'authentification utilisateur qui, sinon, apparaîtraient sous forme de texte en clair. Pour plus d'informations sur la manière d'utiliser SSL avec des points de terminaison HTTP, consultez Configuration d'un certificat en vue de son utilisation par SSL.
Compilation du code
SQL Server installe .NET Framework 2.0 dans le cadre de son processus d'installation. Les instructions de compilation utilisent la version la plus récente de.NET Framework (numéro le plus élevé dans le dossier \WINDOWS\Microsoft.NET\Framework).
Pour compiler le code
- Enregistrez l'ensemble du projet.
Ouvrez une fenêtre d'invite de commandes et placez-vous dans le dossier où le projet est enregistré.
À partir de ce dossier, copiez le fichier Reference.vb du sous-dossier Web Reference\Server (par exemple, copiez « Web Reference\Server\Reference.vb »). Les fichiers Form1.vb et Reference.vb doivent se trouver dans le même dossier.
Compilez le code et spécifiez le nom de votre fichier exécutable (.exe). Par exemple, si le nom de l'exécutable est NativeSOAPApp2.exe, la commande s'écrira :
\WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\vbc.exe /out:NativeSOAPApp2.exe /r:System.dll /r:System.Data.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:Microsoft.VisualBasic.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll /m:Form1 Form1.vb Reference.vb
xxxxx représente le numéro du dossier correspondant à la version du .NET Framework.
Cette opération permet de créer le fichier exécutable (NativeSOAPApp2.exe) dans le répertoire actif.
Notes
Si vous utilisez une version plus ancienne de .NET Framework, vous pouvez recevoir un message d'erreur d'exécution. Le cas échéant, essayez de mettre à jour la procédure stockée GetCustomerInfo en ajoutant la clause FOR XML AUTO à la fin de l'instruction SELECT, de la manière suivante :
SELECT TOP 3 SalesOrderID, OrderDate FROM SalesOrderHeader WHERE CustomerID = @CustomerID FOR XML AUTO
Les résultats de l'exécution de la procédure stockée s'affichent dans la zone de liste.
Voir aussi