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

WinDev Discussion :

Récupérer résultats requête SQL par un webservice


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut Récupérer résultats requête SQL par un webservice
    Bonjour à tous,

    J'avance dans la réalisation de mon (mes) webservice(s) (merci tatayo!!). Avant de continuer, j'aimerais savoir comment je peux récupérer un résultat par un webservice. Je m'explique : j'aimerai passer à une procédure une chaine représentant une requête SQL et j'aimerai que le webservice me renvoie le résultat dans un tableau(?) ou autre.
    2ème interrogation, je prévois une connexion-déconnexion autour de chaque requête, ce qui veut dire que lorsque je souhaiterai faire une transaction SQL, il faudra faire une procédure spécial dans le webservice... comment avez-vous appréhendé cela?
    Enfin 3ème question, peut-on comparer l'exécution du webservice à un thread? C'est à dire qu'un webservice lancé simultanément par plusieurs instances vont se "parallèliser" (j'aime ce terme!! ).
    merci d'avance pour vos réponses!

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Bonjour,
    Dans mes WebServices, je transforme le résultat de ma requête en chaine (séparateur de colonne TAB et le ligne RC), et j'envoie le tout. Bref une sérialisation à la main, mais mes WebServices ont été écrit en version 10 et la sérialisation ne fonctionnait pas très bien (ou en tout cas je n'avais pas réussi à la faire fonctionner ).
    Peut-être qu'avec la version 15 ça fonctionne correctement.

    Tu peux aussi créer une chaine XML, et la parser à l'arriver.
    Ou alors utiliser un tableau de structure, qui semble aussi fonctionner correctement depuis la 15 (peut-être aussi la 14, en tout cas en 12 ça ne fonctionnait pas très bien).

    Bref tu as quelques pistes à explorer

    Tatayo.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut
    Bon alors, j'ai décidé de remplir un tableau dynamique de chaines et de le sérialiser à l'aide de la fonction Serialise() avec le type psdXML. Hors Webservice, ma procédure fonctionne mais à travers le webservice nada.
    En local le résultat de ma fonction est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0"?>
    <DOCUMENT xmlns:SOAP_ENC="http://schemas.xmlsoap.org/soap/encoding/">
    	<tab_Res SOAP_ENC:arrayType="tab_Res[2,2]">
    		<item>Code1</item>
    		<item>Libelle1</item>
    		<item>Code2</item>
    		<item>Libelle2</item>
    	</tab_Res>
    </DOCUMENT>
    et par le webservice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><soap:Body><DonneRenseignementArticleResponse xmlns="TPWebServiceServeur"><DonneRenseignementArticleResult xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:string"></DonneRenseignementArticleResult></DonneRenseignementArticleResponse></soap:Body></soap:Envelope>
    autrement dit pas de résultat. Si je renvoie une chaine, pas de soucis (ce qui met ma liaison SQL hors de cause) mais un tableau de chaines à 2 dimensions... argh

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut
    Bon alors avec une chaine de caractères séparée par des TAB et des RC côté serveur et un ChaineVersTableau() côté client pas de soucis mais je pense qu'il y a sans doute mieux à faire...

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Je suis tout à fait d'accord, et ce d'autant plus que dans un projet, j'ai importé le WebService de l'application Magento, et celui-ci me renvoie des tableaux de structures imbriqués (une structure qui contient un tableau de structure, qui contient un tableau de structure, etc...). Et ça fonctionne parfaitement, sans aucune sérialisation/désérialisation.
    Peut-être que tu peux regarder de ce côté ci, plutôt que de renvoyer directement un tableau, tu renvoies une structure qui contient ton tableau.

    Tatayo.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut
    J'ai essayé de créer une classer avec un membre tableau dynamique dans mon webservice. J'ai une méthode qui affecte le tableau de résultats au tableau de la classe et je renvoie ma classe.
    Côté client, je définit une classe identique et je l'affecte au retour de mon webservice mais je m'y attendais :
    Erreur : On ne peut pas affecter à un objet autre chose qu'un objet de la même classe.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/10/2012, 22h34
  2. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  3. Récupérer valeur requête SQL
    Par joquetino dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 10/08/2006, 15h23
  4. [MySQL] Récupérer résultat requête tableau
    Par Invité dans le forum JDBC
    Réponses: 2
    Dernier message: 03/05/2006, 08h22
  5. [D5][BDE][Multibase] Récupérer les requêtes SQL d'une TTable
    Par Escandil dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/01/2006, 14h29

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