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

Delphi .NET Discussion :

WebService Win32 consommé par D2005


Sujet :

Delphi .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Par défaut WebService Win32 consommé par D2005
    Bonjour,
    J'ai developpé un WebService avec Delphi6 dans lequel j'ai une fonction qui me renvoi un TStringDynArray ( parait que ca marche bien ) !

    Quand je consomme ce WS avec une interface Win32 je fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var
      Resultat: TStringDynArray;
      i: integer;
    begin
      Resultat := SM.RecherchePlans(Langue, Role, PrefRole, TechClass, CriteresDemande, CriteresTechnical, NbResultat);
      For i := 0 to Length(Resultat) - 1 do
        ShowMessage(Resultat[i]);
    end;
    Tout ca marche tres bien, meme sans initialiser "Resultat".

    Par contre quand je fais la meme chose dans D2005, et bien il me dit :
    La référence d'objet n'est pas définie à une instance d'un objet.
    et plante sur le ShowMessage ...

    Quelqu'un aurait une idée de pourquoi la fonction ne me renvoi rien en .net et pas en Win32 ???

    Merci !

  2. #2
    Membre confirmé

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Par défaut
    Personne se sent inspiré ?
    Ma question n'est elle pas clair ? C'est possible ...

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    si je me souviens bien ce message indique que l'objet n'est pas initialisé mais je n'en suis pas certain.
    Quelle exception au juste ?

  4. #4
    Membre confirmé

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Par défaut
    Yep ! C'est ca !
    En fait, j'ai laisser tombé un pti moment et la je m'y suis remis ...
    C'est juste que le webservice developpés avec D6 ne peuvent pas renvoyer de tableau dyunamique de type : Il faut utiliser des TStringDynArray.
    Si une fonction du WS renvoi un TStringDynArray, pas besoin de l'initialiser dans le client, le WS la renvoie toute bien comme il faut !

    Par contre une application .net ne connait pas les TStringDynArray, on doit declarer un type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMyArrayOfString: array of string;
    En gros j'ai refait le webservice en .net et hop ! Comme ca je ne passe que des type connu par le WS et l'appli web...

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SubZero2
    Par contre une application .net ne connait pas les TStringDynArray,
    Si dans l'unité Borland.Vcl.Types
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TStringDynArray       = array of string;
    Après réflexion je pensais que le pb venais de l'échange de chaine de type String Win32 et String .NET.
    Comme je ne connais pas les WS je resterai prudent quant à l'interprétation à donner à ce pb mais je suis vraiment curieux de comprendre comment ça fonctionne entre les 2 plateformes...

  6. #6
    Membre confirmé

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Citation Envoyé par SubZero2
    Par contre une application .net ne connait pas les TStringDynArray,
    Si dans l'unité Borland.Vcl.Types
    Oui d'accord mais ca ne passe pas bien du tout !
    Le WS Win32 ne renvoi pas le tableau "dimensionné" a l'appli .NET ...
    J'ai pas reussi a faire cohabiter les deux ...

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Plutôt curieux comme problème

  8. #8
    Membre confirmé

    Inscrit en
    Décembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 166
    Par défaut
    oui je suis d'accord ... obscur je dirai meme !

Discussions similaires

  1. WebService consommé par un service NT .
    Par silset dans le forum Services Web
    Réponses: 2
    Dernier message: 24/07/2009, 16h44
  2. Libérer la mémoire consommée par un DataModule
    Par liviertlse dans le forum Bases de données
    Réponses: 16
    Dernier message: 10/05/2007, 14h59
  3. [mémoire consommée par Oracle]
    Par tesla dans le forum Oracle
    Réponses: 4
    Dernier message: 03/10/2006, 16h47
  4. Analyseur de mémoire consommé par un soft
    Par chris_wafer_2001 dans le forum C++
    Réponses: 18
    Dernier message: 25/10/2005, 23h30

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