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

WebDev Discussion :

Récupérer dans un état les résultats d'une procédure MySQL [WB24]


Sujet :

WebDev

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Récupérer dans un état les résultats d'une procédure MySQL
    Bonsoir à tous
    je voudrais récupérer dans un état les valeurs retournées par une procédure dans une base de donnée MySql.
    j'ai monté ma procédure dans mysql, le soucis je n'arrive pas a la récupérer dans l'éditeur de requête, qui n'affiche que les tables.
    j'ai aussi monté une procédure au niveau de webdev, pour récupérer les résultats de la requête, mais je n'arrive pas à l'intégrer dans mon état ?
    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
     
    PROCÉDURE RechercheMontantSolde(
    @parametre0 est une chaîne,
    @parametre1 est une chaîne,
    @parametre2 est une chaîne,
    @parametre3 est un entier sur 8 octets,
    @parametre8 est un entier sur 8 octets)// La depense en 
     
     
    MaProcédure est une Source de Données
     
    rMontantCompte est un réel
    rTotalEngagees est un réel
    rSoldeCompte est un réel
    rTotalEngageesEtEncours est un réel
    sCodeChapitre est une chaîne 
    rMontantChapitre est un réel
     
    rep est un booléen= HExécuteRequêteSQL(MaProcédure, MaConnexion, hRequêteSansCorrection ,...
    "CALL RechercheMontantSolde('" + @parametre0 + "','" +@parametre1+ "','" +@parametre2+ "','" +@parametre3+ "',@parametre4 ,@parametre5,@parametre6,@parametre7,@parametre8);"+...
    "SELECT @parametre4, @parametre5,@parametre6,@parametre7,@parametre8; ")
     
    SI rep = Vrai ALORS
    	HLitPremier(MaProcédure,hSansRafraîchir)
    	SI PAS HEnDehors() ALORS
    		rMontantCompte = MaProcédure.@parametre4//montant comppte
    		rTotalEngagees = MaProcédure.@parametre5//total
    	//	rSoldeCompte = MaProcédure.@parametre6//solde
    		//	CALCUL DE RESULTATS
    		rTotalEngageesEtEncours = rTotalEngagees + @parametre8
    		rSoldeCompte = rMontantCompte - rTotalEngageesEtEncours
    		//RELATIF AU CHAPITRE
    		sCodeChapitre = MaProcédure.@parametre7//CODE CHAPITRE
    		rMontantChapitre = MaProcédure.@parametre8//MONTANT CHAPITRE
    	FIN
    SINON
    	Erreur(HErreurInfo())
    FIN
    RENVOYER (rMontantCompte,rTotalEngagees,rSoldeCompte,sCodeChapitre,rMontantChapitre)
    ?

    Merci pour votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bonjour

    Après plusieurs, j'en conclu sauf erreur de ma part que les états ne peuvent pas avoir comme source de données, les procédures sql, donc dans mon cas je vais :
    - Créer un état sans source de données,
    - Exécuter ma procédure décrites plus haut ,
    - Récupérer mes données dans des variables,
    - Passer ses variables en paramètres au lancement de mon état

    Merci à tous

  3. #3
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Sauf erreur de ma part, les états peuvent avoir comme source de données, une requête (créée via l'éditeur de requête). https://doc.pcsoft.fr/?2032025

    Dans ton cas, je pense que tu confonds, le texte de ta requête et l'exécution de celle-ci pour ton état. Si comme moi, tu préfères utiliser une requête codée "à la main", tu as 2 solutions :
    - Celle que tu as utilisée même si j'aurais plutôt passé le résultat de la requête directement en paramètre. A tester niveau performances.
    - Exécuter ta requête dans le code "ouverture de l'état" et par courir le résultat.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Souvent, dans un état, on ne sait pas à l'avance le nombre de lignes , exemple : pour chaque commande afficher la date, le montant, et le nom du client. Avec une ligne pour chaque commande.
    Dans cet exemple, on parle d'état basé sur un fichier ou sur une requête.

    Toi, si j'ai bien suivi, tu as 5 nombres (récupérés par une requête , ou par un calcul ou autrement, peu importe), et tu veux imprimer ces 5 nombres.
    Des nombres ou des textes d'ailleurs, peu importe.
    Tu sais à l'avance que tu vas imprimer une page , avec ces 5 nombres.
    On n'est pas du tout dans le cadre d'état basé sur une requête.
    Ce que tu envisages dans ton 2ème message est la bonne démarche.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Bonjour à tous

    Citation Envoyé par frenchsting Voir le message
    - Exécuter ta requête dans le code "ouverture de l'état" et par courir le résultat.
    Oui c'est aussi une option que j'envisage et voir ensuite les performances.

    Merci a tous

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

Discussions similaires

  1. [XL-2010] Récupérer dans un classeur le résultat d'une requête url
    Par nehoc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2017, 14h32
  2. Récupérer dans un classeur le résultat d'une requête url
    Par nehoc dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/12/2017, 19h58
  3. Réponses: 3
    Dernier message: 14/12/2015, 12h09
  4. [AC-2007] Utiliser dans un état le résultat d'une sub ou d'une function
    Par oplaut dans le forum Access
    Réponses: 3
    Dernier message: 09/12/2010, 18h25
  5. Réponses: 3
    Dernier message: 12/10/2009, 09h37

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