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 le code SQL d'une requête exécutée par HExécuteRequête [WD25]


Sujet :

WinDev

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Par défaut Récupérer le code SQL d'une requête exécutée par HExécuteRequête
    Bonjour,

    Dans un bug de LOG j'aurai besoin de récupérer le code SQL après avoir renseigné les paramètres. Exemple :

    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
    qReq est une Requête SQL = 
    [
    SELECT PERSONNE.NOM, PERSONNE.PRENOM
    FROM PERSONNE
    WHERE PERSONNE.ID ={P_IDPERSONNE}
    ]
    qReq.P_IDPERSONNE = nIdPersonne
     
    SI HExécuteRequête(qReq, maCnx, hRequêteSansCorrection) ALORS
    	HLitPremier(qReq,hForwardOnly+hSansRafraîchir)
    	SI PAS HEnDehors(qReq)
    		//
    	FIN
    SINON
    	Erreur("Erreur Exécution Requête",HErreurInfo(hErrComplet))
    FIN
    HLibèreRequête(qReq)
    Je voudrais obtenir le texte SQL de la requête paramétrée avant ou après son exécution c.-à-d. :
    "SELECT PERSONNE.NOM, PERSONNE.PRENOM FROM PERSONNE WHERE PERSONNE.ID = 12"

    Je n'ai rien trouvé à ce sujet. Est-ce réalisable ?

    nb : qReq..CodeSQL n'est pas utilisable sur une variable de type requête SQL

    Merci de votre aide et bonne journée

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 942
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il faut passer par une indirection sur le nom (défini par le système) de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {sqlMaReq..Nom,indFichier}..CodeSQL

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Il faut passer par une indirection sur le nom (défini par le système) de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {sqlMaReq..Nom,indFichier}..CodeSQL
    Merci mais ça génère une erreur à l'exécution :

    "La fichier, la vue ou la requête '_QUERY' n'est pas connue

  4. #4
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 545
    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 545
    Par défaut
    Bonjour,

    Tu as bien remplacé sqlMaReq par qReq ?

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    Tu as bien remplacé sqlMaReq par qReq ?
    Oui et sinon j'aurai eu une erreur dans l'éditeur

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 942
    Billets dans le blog
    1
    Par défaut
    Il faut exécuter la requête avant l'utilisation du code. Pas d'exécution=Pas de requête connue.
    Le nom est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _QUERY_NomVariableRequête_No
    Chez moi ça fonctionne.

  7. #7
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Par défaut
    Bonjour, alors je viens de retenter et effectivement ça fonctionne comme tu l'a dit. En revanche le contenu obtenu n'a pas les paramètres renseignés. Comme je veux enregistrer dans un fichier log, c'est la requête complète avec ses paramètres qui m'intéresse. Mais c'est déjà ça merci

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 942
    Billets dans le blog
    1
    Par défaut
    Étrange,
    Cela doit éventuellement venir des paramètre de HExécuteRequête.
    Pour le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sqlMaReq est une Requête SQL = 
    [
    	SELECT Article.AK_CodeArticle
    	FROM 
    		Article
    	WHERE 
    		PK_Article={pArticle}
    ]
    sqlMaReq.pArticle=1
     
    HExécuteRequête(sqlMaReq)
    Trace({sqlMaReq..Nom,indFichier}..CodeSQL)
    J'ai bien le retour :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Article.AK_CodeArticle  AS AK_CodeArticle 
    FROM Article 
    WHERE ( PK_Article =  1)

  9. #9
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Par défaut
    Alors effectivement cela vient des paramètres. Si on exécute avec le nom de la connexion et hRequêteSansCorrection alors on obtient la requête telle qu'elle est déclarée dans l'éditeur :
    Nom : cap1.png
Affichages : 909
Taille : 28,7 Ko

    Alors qu'en exécutant sans paramètre on a bien le contenu avec les paramètres renseignés :

    Nom : cap2.png
Affichages : 889
Taille : 32,6 Ko

    et on remarque au passage que la correction de la requête a également mis des alias aux colonnes.

    Merci pour ton aide et bonne journée

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 942
    Billets dans le blog
    1
    Par défaut
    N'oublie pas de passer en "Résolu"

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/02/2013, 00h15
  2. [ACCESS] Affichage du code SQL d'une requête
    Par cyrille_ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 03/07/2008, 20h22
  3. modifier le code SQL d'une requête
    Par modus57 dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/05/2008, 16h09
  4. Réponses: 2
    Dernier message: 05/07/2007, 21h11
  5. Code SQL de mes requêtes coupées par ACCESS 2003
    Par boubou_s dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/03/2007, 16h34

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