PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Configurer HExecuterequete avec des dates
Configurer HExecuterequete avec des dates
Iniciado por Jean Turcotte, 20,oct. 2019 17:59 - 8 respuestas
Miembro registrado
1.395 mensajes
Publicado el 20,octubre 2019 - 17:59
Bonjour, aujourd'hui j'ai un soucis avec la commande HExécuteRequete, lorsque je l'éxécute en mode simulation, elle fonctionne et me sort les données désirées;



mais me donne nRésultat = -1 en programmation.
dDateDébut est Date = SAI_DateDébut
dDateFin est Date = dDateDébut + 6j
SI HExécuteRequête(REQ_Recherche_Détail_Planif,hRequêteDéfaut, dDateDébut, dDateFin) ALORS
nRésultat est entier = HNumEnr(REQ_Recherche_Détail_Planif)
bRésultat est un booléen = HSupprimeTout(REQ_Recherche_Détail_Planif)
FIN


Je crois que le format de date cause mon problème. J'ai essayé avec le format Date et Chaîne mais sans résultat. C'est probablement simple mais je bloque et plutôt que de passer des heures à trouver la source du problème, je m'en remet à votre expérience

Merci de votre aide.

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
2.321 mensajes
Publicado el 20,octubre 2019 - 18:48
Bonjour,

Il semble que vos rubriques "date" soit en fait des "dateheure"...

--
Bon dev,
Jean-Pierre
Miembro registrado
1.395 mensajes
Publicado el 20,octubre 2019 - 21:31
Bonjour Jean-Pierre,

Effectivement, il s'agit de rubriques DateHeure mais ca n'y change rien. j'obtient le meme résultat en rubrique date, de plus j'ai même changé le format date et jai toujours le même résultat.;
SI HExécuteRequête(REQ_Recherche_Détail_Planif,hRequêteDéfaut, DateVersChaîne(dDateDébut,"AAAAMMJJ"), DateVersChaîne(dDateFin,"AAAAMMJJ")) = Vrai ALORS
nRésultat est entier = HNumEnr(REQ_Recherche_Détail_Planif)


--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
1.395 mensajes
Publicado el 20,octubre 2019 - 21:52
J'ai trouvé une partie de mon probleme mais pas en entier, je me suis trompé de fonction pour le nombre d'enregistrement, je devais utiliser HnbrEnr au lieu de HnumEnr. Maintenant ma requete fonctionne et nRésultat indique le nombre d'enregistrement trouvés.

Le problème qui me reste est que bRésultat m'indique que les données ont bel et bien été effacées mais elles ne s'effacent pas dans la base de données.

Des idées?

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
4.361 mensajes
Publicado el 20,octubre 2019 - 23:03
Bonjour,
Je cite la doc de HSupprimeTout :

Supprime tous les enregistrements d'un fichier de données, d'une vue HFSQL ou d'une requête. Les enregistrements sont supprimés logiquement et physiquement. Ils ne pourront pas être restaurés.

En l'occurence, HSupprimeTout(REQ_...) efface les enregistrements de la requête, pas les enregistrements associés, il faut considérer REQ_... comme une entité propre.
Pour effacer les enregistrements de la table HRS_Planif..., il faut récupérer les PK correspondantes et faire la suppression au niveau de la table.
Ou plus simplement, via la requête:
DELETE FROM
HRS_Planif...
WHERE
HRS_....Date BETWEEN {pDateDébut} AND {pDateFin}


--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 20,octubre 2019 - 23:16
Miembro registrado
1.395 mensajes
Publicado el 21,octubre 2019 - 01:00
Si je comprend bien, les REQ sont des entités indépendantes avec laquelle on peut travailler, à la maniere d'une table, mais qui n'affecte en rien les base de données reliées ?

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
4.361 mensajes
Publicado el 21,octubre 2019 - 09:05
Sauf rares exceptions oui. DAns Windev, il y a toutefois le paramètre hModifeFichier dans hExecuteRequête qui permet, entre autre, de reporter les ordres HModifie dans les tables "associées" à la requête (je te laisse consulter la doc qui est plus détaillées.)

--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 21,octubre 2019 - 09:16
Miembro registrado
2 mensajes
Publicado el 21,octubre 2019 - 10:20
Bonjour,

En effet, le paramètre hModifieFichier permet de reporter modifications ou suppressions (normalement) dans les fichiers liés à une requête.
Miembro registrado
1.395 mensajes
Publicado el 21,octubre 2019 - 13:30
Merci, c'est bien de le savoir. ;)

--
Jean Turcotte
WX 24
Android 8.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram