Leçon 3 : Accès au service Web

Après avoir ajouté une référence au service Web Report Server à votre projet, l'étape suivante consiste à créer une instance de la classe proxy du service Web. Vous pouvez alors accéder aux méthodes de ce service Web en les appelant dans la classe proxy. Lorsque votre application appelle ces méthodes, le code de la classe proxy générée par Visual Studio gère les communications entre votre application et le service Web.

Vous allez tout d'abord créer une instance de la classe proxy du service Web ReportingService2005. Vous allez ensuite appeler la méthode GetProperties du service Web en utilisant la classe proxy. Vous utiliserez cet appel pour extraire le nom et la description de l'un des exemples de rapports appelé Company Sales.

ms170088.note(fr-fr,SQL.90).gifRemarque :
Pour accéder au service Web lorsque vous exécutez SQL Server Express with Advanced Services, vous devez ajouter "$SQLExpress" au chemin d'accès "ReportServer". Exemple : http://<Server Name>/reportserver$sqlexpress/reportservice2005.asmx"

Pour accéder au service Web

  1. Vous devez tout d'abord ajouter l'espace de noms au fichier Program.cs (Module1.vb dans Visual Basic) en ajoutant une directive using (Import dans Visual Basic) dans le fichier de code. Si vous utilisez cette directive, il n'est pas nécessaire de qualifier complètement les types dans l'espace de noms.

  2. Pour ce faire, ajoutez le code suivant au début de votre fichier de code :

    Imports System
    Imports GetPropertiesSample.ReportService2005
    
    using System;
    using GetPropertiesSample.ReportService2005;
    
  3. Après avoir entré la directive d'espace de noms dans votre fichier de code, entrez le code suivant dans la méthode Main de votre application console. Pensez à modifier le nom de votre serveur au moment de définir la propriété Url de l'instance du service Web :

    Sub Main()
       Dim rs As New ReportingService2005
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials
       rs.Url = "http://<Server Name>/reportserver/reportservice2005.asmx"
    
       Dim name As New [Property]
       name.Name = "Name"
    
       Dim description As New [Property]
       description.Name = "Description"
    
       Dim properties(1) As [Property]
       properties(0) = name
       properties(1) = description
    
       Try
          Dim returnProperties As [Property]() = rs.GetProperties( _
             "/AdventureWorks Sample Reports/Company Sales", properties)
    
          Dim p As [Property]
          For Each p In returnProperties
              Console.WriteLine((p.Name + ": " + p.Value))
          Next p
    
       Catch e As Exception
          Console.WriteLine(e.Message)
       End Try
    End Sub
    
    static void Main(string[] args)
    {
       ReportingService2005 rs = new ReportingService2005();
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
       rs.Url = "http://<Server Name>/reportserver/reportservice2005.asmx";
    
       Property name = new Property();
       name.Name = "Name";
    
       Property description = new Property();
       description.Name = "Description";
    
       Property[] properties = new Property[2];
       properties[0] = name;
       properties[1] = description;
    
       try
       {
          Property[] returnProperties = rs.GetProperties(
          "/AdventureWorks Sample Reports/Company Sales",properties);
    
          foreach (Property p in returnProperties)
          {
             Console.WriteLine(p.Name + ": " + p.Value);
          }
       }
    
       catch (Exception e)
       {
          Console.WriteLine(e.Message);
       }
    }
    
  4. Enregistrez la solution.

L'exemple de code de cette procédure pas à pas utilise la méthode GetProperties du service Web pour extraire les propriétés de l'exemple de rapport intitulé Company Sales. La méthode GetProperties accepte deux arguments : le nom du rapport pour lequel vous souhaitez extraire les informations de propriétés et un tableau d'objets Property[] qui contient les noms des propriétés dont vous souhaitez extraire les valeurs. Cette méthode renvoie également un tableau d'objets Property[] qui contient les noms et les valeurs des propriétés spécifiées dans l'argument des propriétés.

ms170088.note(fr-fr,SQL.90).gifRemarque :
Si vous fournissez un tableau Property[] vide pour l'argument des propriétés, toutes les propriétés disponibles sont renvoyées.

Dans l'exemple précédent, le code utilise la méthode GetProperties pour renvoyer le nom et la description de l'exemple de rapport intitulé Company Sales. Il utilise ensuite une boucle foreach pour écrire les propriétés et les valeurs dans la console.

Pour plus d'informations sur la création et l'utilisation d'une classe proxy pour le service Web Report Server, consultez Creating the Web Service Proxy.

Voir aussi

Tâches

Leçon 4 : Exécution de l'application (VB/VC#)

Concepts

Didacticiel : Accès au service Web Report Server avec Visual Basic ou Visual C#

Aide et Informations

Assistance sur SQL Server 2005