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 :

Surcharge de HExécuteRequête


Sujet :

WinDev

  1. #1
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut Surcharge de HExécuteRequête
    Bonjour à tous,

    Suivant la documentation windev (surcharge : http://doc.pcsoft.fr/?1513004 et HExécuteRequête : http://doc.pcsoft.fr/fr-FR/?3044080), j'ai tenté de surcharger la fonction WLangage HExécuteRequête, cependant je tombe sur un os, mais je ne sais pas comment le résoudre...

    Voici ma procédure toute simple (afin de tester pour commencer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROCEDURE HExécuteRequête(NomDeLaRequête est une Source de Données, Mode est un entier = hRequêteDéfaut, *) : booléen
     
    WL.Trace("passe ici")
     
    RENVOYER WL.HExécuteRequête(NomDeLaRequête,Mode,MesParamètres[3 A ])
    PS : J'avais mis au départ le premier paramètre en chaine, mais mes appels à la fonction ne passe jamais (d'où la trace).

    L'exécution de cette procédure globale se passe bien, le WL.HExécuteRequête renvoie même Vrai ! Une fois sorti de la procédure, le parcours des enregistrements fait planter mon application avec l'erreur suivante :
    Exception :
    Le mécanisme de sécurité HFSQL s'est déclenché lors d'un parcours intégré du fichier 'REQ_MaRequête' sur la rubrique ''.
    La source de données <REQ_MaRequête> n'est pas initialisée.
    - S'il s'agit d'un fichier de données, le fichier n'a pas été trouvé dans l'analyse <C:\Projets\MonProjet\MonAnalyse.wdd> ou n'a pas été décrit avec les fonctions HDéclare / HDéclareExterne.
    - S'il s'agit d'une requête ou d'une vue, l'exécution a peut-être échoué.
    Pour récupérer l'erreur correspondante, testez le résultat des fonctions HExécuteRequête / HExécuteRequêteSQL / HCréeVue.
    Cela me laisse perplexe car l'exécution se passe bien (contraitement à ce qu'indique l'erreur)... Cependant, je pense que je m'y prends certainement mal...

    Voici l'appel de ma procédure en quelques lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI HExécuteRequête(MaRequête) ALORS
        POUR TOUT MaRequête
            <exécution>
        FIN
    FIN
    Pour info, MaRequête est une requête créée sous l'éditeur.

    Avez-vous une idée de comment faire ? J'imagine que certains ont déjà surchargé cette méthode afin de faire une gestion d'erreur ou quelque chose comme ça ?

    Merci d'avance !
    En vous remerciant, bonsoir.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour Romanops,

    Dans ta procédure, ne type pas le paramètre NomDeLaRequête.

    Code wlangage : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCEDURE HExécuteRequête(NomDeLaRequête, Mode est un entier = hRequêteDéfaut, *) : booléen

    Bon dév.

  3. #3
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Merci beaucoup pour cette proposition, malheureusement, ça ne fonctionne pas non plus, ça donne une autre erreur :
    Exception :
    Aucune syntaxe de 'HExécuteRequête' ne correspond à l'appel.
    Mais cette fois, à l'exécution de WL.HExécuteRequête...
    En vous remerciant, bonsoir.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonjour
    Essaies en anglais au cas ou les accents derangent.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 15
    Points
    15
    Par défaut
    Bonjour Essaye de mettre ton paramètre en LOCAL.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour à tous,

    Citation Envoyé par OnePoint Voir le message

    Dans ta procédure, ne type pas le paramètre NomDeLaRequête.

    Code wlangage : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCEDURE HExécuteRequête(NomDeLaRequête, Mode est un entier = hRequêteDéfaut, *) : booléen
    Je confirme que la surcharge fonctionne pour une utilisation avec une requête du projet, si on ne type pas le paramètre NomDeLaRequête.

    J'ai testé, mais sans passer de paramètres.

    Toutefois, j'ai eu beaucoup de mal a faire fonctionner la surcharge.
    Ça ne s'est pas fait du premier coup.
    Recompilation, suppression du dossier .cpl... entre autres...
    il m'a fallu de la persévérance.



    P.S. Je n'ai pas testé en anglais, mais j'avais bien, essayé le mot-clé Local et... non !

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour,

    Selon l'aide, outre le même nom,
    •Le même nombre de paramètres que la fonction WLangage à surcharger. Ces paramètres doivent également être du même type que ceux de la fonction WLangage.
    Romanops signalait avoir essayé avec une chaîne (soit le type de paramètre de la fonction d'origine).
    PS : J'avais mis au départ le premier paramètre en chaine, mais mes appels à la fonction ne passe jamais (d'où la trace).
    La question restait ouverte, sauf qu'en principe la substitution de type qu'il a tentée ensuite devait poser un problème (sans que la doc donne plus d'information ...)
    Je confirme que la surcharge fonctionne pour une utilisation avec une requête du projet, si on ne type pas le paramètre NomDeLaRequête.
    Mais après l'essai de OnePoint, il faut explorer plus avant.
    Donc, peut-on suggérer à Romanops de réessayer en utilisant une chaîne avec et sans typage, sur une requête basique, type simple select, dans et hors le contexte où il a déjà testé ?


    Hemgé

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/12/2003, 10h23
  2. Surcharge de fonction d'un edit dynamique
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/10/2003, 11h56
  3. Réponses: 5
    Dernier message: 24/04/2003, 11h47
  4. Surcharger le message d'erreur après un OnException
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 11h42
  5. Réponses: 8
    Dernier message: 20/11/2002, 11h50

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