PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → HexecuteRequete
HexecuteRequete
Débuté par FRANCIS, 21 mar. 2018 12:29 - 8 réponses
Membre enregistré
146 messages
Posté le 21 mars 2018 - 12:29
Bonjour,
Je tourne en rond avec ce problème. J'ai une requête qui fonctionne lorsque je suis dans l'editeur de requête.
Lorsque je l'utilise via une fenêtre depuis un champ de saisie le paramètre ne se renseigne pas !?!
Auriez vous une idée :

REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee = SAI_PDVG_DateRepFourImma..Valeur
HExécuteRequête(REQ_PDV_Global_Mensuel)
Trace("Date Paramétrée : "+REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee)


Lorsque je trace la valeur est "0" à la place de "201801" valeur saisie dans le champ
MERCI
Membre enregistré
1 143 messages
Popularité : +50 (142 votes)
Posté le 21 mars 2018 - 13:09
bonjour,
Peut-être en passant par une variable date qui recevrait le contenu du SAI et utiliser cette variable date pour initialiser le paramètre de la requête ?...
Membre enregistré
43 messages
Popularité : +2 (2 votes)
Posté le 21 mars 2018 - 13:16
Bonjour,
Après avoir exécuté la requête, il faut en lire le résultat (HlitPremier(REQ_PDV_Global_Mensuel))
Bon courage
Membre enregistré
146 messages
Posté le 21 mars 2018 - 14:02
Bonjour,
J'ai fait le test avec une variable même résultat ?!
Oui j'avais bien hlit
//REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee = SAI_PDVG_DateRepFourImma..Valeur
REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee = sMaPreriodePDVGlobal
HExécuteRequête(REQ_PDV_Global_Mensuel)
Trace("Date Paramétrée : "+REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee)

SI HExécuteRequête(REQ_PDV_Global_Mensuel) = Faux ALORS // ----------------------------------------------------------
Erreur("Erreur d'initialisation de la requête PDV Global" + RC + HErreurInfo())
RETOUR
SINON
HLitPremier(REQ_PDV_Global_Mensuel)
TANTQUE PAS HEnDehors() // --------------------------------------------------------------------------------------
sPDVG_MonImmat = REQ_PDV_Global_Mensuel.Immatriculation
TABLE_PDV_RepartitionFourImmat.COL_Immatriculation = sPDVG_MonImmat
TableAjouteLigne(TABLE_PDV_RepartitionFourImmat,COL_Immatriculation)
HLitSuivant()

FIN // ----------------------------------------------------------------------------------------------------------
TableSupprimeSelect(TABLE_PDV_RepartitionFourImmat) // Supprime la 1er ligne poluante
FIN // --------------------------------------------------------------------------------------------------------------

FIN // ------------------------------------------------------------------------------------------------------------------
HLibèreRequête(REQ_PDV_Global_Mensuel)


Voila le code pour l'execution de la requête
Merci pour votre aide
Membre enregistré
1 143 messages
Popularité : +50 (142 votes)
Posté le 21 mars 2018 - 14:43
après le premier HExécuteRequête il faut un HLit non?
Membre enregistré
146 messages
Posté le 21 mars 2018 - 14:52
Résolu en modifiant de cette manière
En modifiant de cette manière ça fonctionne, en ajoutant le paramètre dans le HexecuteRequete :
SI HExécuteRequête(REQ_PDV_Global_Mensuel,hRequêteDéfaut,sMaPreriodePDVGlobal) = Faux ALORS // --------------------
Erreur("Erreur d'initialisation de la requête PDV Global" + RC + HErreurInfo())
RETOUR
SINON
HLitPremier(REQ_PDV_Global_Mensuel)
TANTQUE PAS HEnDehors() // ----------------------------------------------------------------------
sPDVG_MonImmat = REQ_PDV_Global_Mensuel.Immatriculation
TABLE_PDV_RepartitionFourImmat.COL_Immatriculation = sPDVG_MonImmat
TableAjouteLigne(TABLE_PDV_RepartitionFourImmat,COL_Immatriculation)
HLitSuivant()

FIN // --------------------------------------------------------------------------------------------
TableSupprimeSelect(TABLE_PDV_RepartitionFourImmat) // Supprime la 1er ligne poluante
FIN // --------------------------------------------------------------------------------------------------

FIN // -----------------------------------------------------------------------------------------------------------
HLibèreRequête(REQ_PDV_Global_Mensuel)

MERCI
Membre enregistré
939 messages
Popularité : +66 (68 votes)
Posté le 21 mars 2018 - 15:17
bonjour,

de ce que je vois, vous lanciez deux fois le HExecuteRequete()

Hors, le premier appel après avoir défini le paramètre prendra bien en compte ce dernier, mais après chaque exécution les paramètres sont réinitialisé.

=> Remarques :
Cette syntaxe simplifie le passage des paramètres. En effet, si les paramètres sont passés directement dans la fonction HExécuteRequête, il est nécessaire de respecter l'ordre des paramètres.
A chaque exécution de la requête paramétrée, la structure des paramètres de la requête est ré-initialisée.

=> https://doc.pcsoft.fr/fr-FR/?3044080&name=HExecuteRequete

donc votre premier trace devait ne rien afficher....

il fallait juste n'exécuter qu'une seule fois votre requête....


à retester ;)

bon dèv
Membre enregistré
939 messages
Popularité : +66 (68 votes)
Posté le 21 mars 2018 - 15:22
un peu comme çà :

REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee = sMaPreriodePDVGlobal
Trace("Date Paramétrée soumise : "+REQ_PDV_Global_Mensuel.Param_PDVG_MoisAnnee)
SI HExécuteRequête(REQ_PDV_Global_Mensuel) = Faux ALORS // ----------------------------------------------------------
Erreur("Erreur d'initialisation de la requête PDV Global" + RC + HErreurInfo())
RETOUR
SINON
HLitPremier(REQ_PDV_Global_Mensuel)
TANTQUE PAS HEnDehors() // --------------------------------------------------------------------------------------
sPDVG_MonImmat = REQ_PDV_Global_Mensuel.Immatriculation
TABLE_PDV_RepartitionFourImmat.COL_Immatriculation = sPDVG_MonImmat
TableAjouteLigne(TABLE_PDV_RepartitionFourImmat,COL_Immatriculation)
HLitSuivant()

FIN // ----------------------------------------------------------------------------------------------------------
TableSupprimeSelect(TABLE_PDV_RepartitionFourImmat) // Supprime la 1er ligne poluante
FIN // --------------------------------------------------------------------------------------------------------------

FIN // ------------------------------------------------------------------------------------------------------------------
HLibèreRequête(REQ_PDV_Global_Mensuel)
Membre enregistré
146 messages
Posté le 21 mars 2018 - 17:33
MERCI
Je me mélange toujours les pinceaux avec le "hExecuteRequete", je vais regarder plus en détail, merci pour votre aide
:merci: