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

Web & réseau Delphi Discussion :

Tableau dans une structure de WebService


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Par défaut Tableau dans une structure de WebService
    Bonjour

    Je voudrais transmettre par un Webservice une structure composée comme ci-dessous

    INFO_AGENT
    NOM_PRENOM de type string
    LIB_AGENCE de type string
    PORTEFEUILLE de type array of ENR

    avec

    ENR
    NUM_CLIENT integer
    DESIGNATION : string
    QUALITE : string

    j'ai écrit le source suivant mais ça ne passe pas à la compil

    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
    47
    48
    49
    50
    51
    52
    53
    54
    unit TestIOIntf;
     
    interface
     
    uses InvokeRegistry, Types, XSBuiltIns;
     
    type
      // Description de la structure ENR
      Enr = Class;
     
      Enr = Class(TRemotable)
      private
        FNum_client  : integer;
        FDesignation : widestring;
        FQualite     : Widestring;
      published
        property Num_client  : integer    read FNum_client  write FNum_client;
        property Designation : widestring read FDesignation write Fdesignation;
        property Qualite     : widestring read FQualite     write FQualite;
      end;
     
     
      Info_Agent = class
     
      Info_Agent = Class(TRemotable)
      private
        FNom_Prenom : widestring;
        FLib_Agence : widestring;
        FPortefeuille : array of Enr;
      published
        property Nom_Prenom   : widestring   read FNom_Prenom   write FNom_Prenom;
        property Lib_Agence   : widestring   read FLib_Agence   write FLib_Agence;
        property Portefeuille : array of Enr read FPortefeuille write FPortefeuille;
     
     
      { Les interfaces invocables doivent dériver de IInvokable }
      ITestIO = interface(IInvokable)
      ['{7BA0A86E-0CCC-42F1-9828-F8EDE440CBE1}']
     
     
      function Lit_Portefeuille(Code_agent : integer) : Portefeuille ; stdcall;
     
     
        { Les méthodes de l'interface invocable ne doivent pas utiliser la convention }
        { d'appel par défaut ; stdcall est conseillée }
      end;
     
    implementation
     
    initialization
      { Les interfaces invocables doivent être recensées }
      InvRegistry.RegisterInterface(TypeInfo(ITestIO));
     
    end.
    Je débute en Delphi et je bute sur ce genre de déclaration

    Est-ce quelqu'un aurait une idée ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    il manque un end pour terminer la déclaration de Info_Agent
    il manquait une virgule si une pré-déclaration, elle est inutile d'ailleurs

    je corrigerais ainsi

    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
     
    type
      // Description de la structure ENR
      Enr = Class(TRemotable)
      private
        FNum_client  : integer;
        FDesignation : widestring;
        FQualite     : Widestring;
      published
        property Num_client  : integer    read FNum_client  write FNum_client;
        property Designation : widestring read FDesignation write Fdesignation;
        property Qualite     : widestring read FQualite     write FQualite;
      end;
     
     
      // Description de la structure Info_Agent
      TPortefeuille = array of Enr;
     
      Info_Agent = Class(TRemotable)
      private
        FNom_Prenom : widestring;
        FLib_Agence : widestring;
        FPortefeuille : TPortefeuille;
      published
        property Nom_Prenom   : widestring   read FNom_Prenom   write FNom_Prenom;
        property Lib_Agence   : widestring   read FLib_Agence   write FLib_Agence;
        property Portefeuille : TPortefeuille read FPortefeuille write FPortefeuille;
    end;
    il est important que TPortefeuille soit déclarer comme type pour que RegisterInterface puisse émettre le tableau dans le WSDL et dans le SOAP


    Après, je ne vois pas dans le code fourni, une boucle de remplissage de la propriété tableau Portefeuille mais en reprenant le code fourni dans Access violation dans un Web service retournant un tableau de valeurs tu devrais t'en sortir
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Par défaut remerciements
    cela fonctionne comme tu me l'as indiqué.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'un tableau dans une structure
    Par Angelique64 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/06/2009, 11h05
  2. allocation d'un tableau dans une structure
    Par Klaine dans le forum Débuter
    Réponses: 3
    Dernier message: 02/04/2008, 23h51
  3. Problème de tableau dans une structure
    Par zarbiman dans le forum Réseau
    Réponses: 5
    Dernier message: 15/12/2007, 18h21
  4. Réponses: 6
    Dernier message: 12/09/2007, 15h58
  5. Tableau dans une structure
    Par Elstak dans le forum C
    Réponses: 3
    Dernier message: 25/04/2007, 11h45

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