|
| hExecuteRequete n'ayant aucun effet la première fois. |
| Iniciado por idrissgouattaraoline, 20,ago. 2020 15:30 - 9 respuestas |
| |
| | | |
|
| |
| Publicado el 20,agosto 2020 - 15:30 |
Bonjour,
Je suis assez Novice avec Windev.
Alors j'ai fenêtre avec une table qui m'affiche le résultat d'une requête de sélection entre plusieurs fichier. J'ai creer un bouton modifier qui me permettrait de mettre a jour les fichiers concerné dans la requête après validation de la fenêtre de modification.
Le code de départ était le suivant :
EcranVersFichier() HEnregistre(REQ_S) Après un tableAffiche les modifications sont visibles dans la table mais ne sont pas appliqué dans la bd. Après recherche, il me suffisait de rajouter :
HExécuteRequête(REQ_S, hModifieFichier)
Ce qui fonctionne... mais seulement a partir du deuxième essaie. A chaque fois que lance l'application, la première modification que j'apporte à un enregistrement (peu importe lequel) n'ai pas appliqué seulement les modifications qui sont faites ensuite sont prise en compte.
Je me suis dit que ça avait un rapport avec le rafraichissement de la table, mais après quelque test, j'ai trouvé que ce n'était pas le cas.
J'ai aucune idée d'ou le problème peut venir, même après 3 jours de googling.
S'il-vous-plait toutes Propositions/Solutions est la bienvenue. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 371 mensajes |
|
| Publicado el 20,agosto 2020 - 16:20 |
Bonjour,
En effet il doit manquer quelque chose.
De mémoire il faut créer un requête avec la constant havecfiltre (qui te permet de modifier automatiquement le fichier de donné lié a la requête.
cela t evite le hexecuterequete.
Tu n'aurais que le code suivant :
- affection des champs hmodifie(requete)
Si ta fenetre de modification contient une table, n'oublie pas d'activer l'enregistrement en sortie de ligne, ou bien de mettre le code dans l evenement sortie de ligne |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,agosto 2020 - 16:41 |
Merci de la réponse.
Cependant mon problème reste même. Que ce soit :
HExécuteRequête(REQ_S, hModifieFichier) Ou
HExécuteRequête(REQ_S, hAvecFiltre) Ou encore les deux :
HExécuteRequête(REQ_S, hModifieFichier+hModifieFichier)
La première des modifications n'est toujours pas prise en compte mais les suivantes si.
Si vous avez besoin de certains détails spécifique concernant le problème, je serais ravie de vous les fournir. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,agosto 2020 - 16:51 |
Merci de la réponse.
Cependant mon problème reste même. Que ce soit :
HExécuteRequête(REQ_S, hModifieFichier) Ou
HExécuteRequête(REQ_S, hAvecFiltre) Ou encore les deux :
HExécuteRequête(REQ_S, hModifieFichier+hModifieFichier)
La première des modifications n'est toujours pas prise en compte mais les suivantes si.
Si vous avez besoin de certains détails spécifique concernant le problème, je serais ravie de vous les fournir. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 371 mensajes |
|
| Publicado el 20,agosto 2020 - 20:47 |
| Pourquoi passes tu par une fenetre pour faire les modifs ? Pourquoi ne pas les faire dans la table directement ? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,agosto 2020 - 21:49 |
Je n'affiche qu'une petite partie des données de la requête dans la table. J'ai intentionnellement désactivé la possibilité de modifié directement dans la table pour cette raison.
Et je trouve qu'avoir les informations complète d'un enregistrement dans une table séparée est plus esthétique. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 371 mensajes |
|
| Publicado el 20,agosto 2020 - 22:38 |
Tu ne filtre pas la requete directement ? Je te pose ces questions car l idée c est d aller au plus simple et au plus secure pour les données. Donc ta requete doit selectionner uniquement ce dont tu as besoin.
Ta table permettre de modifier les données.
Ensuite voir comment tu enregistre les modifications. Tu peux mettre des traces pour avoir des infos sur tes champs, et des points d arret dans ton code
Verifie egalement la façon dont tu rafraîchi ta table ( avec la constante hrexecuterequete ?). |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,agosto 2020 - 22:44 |
Je me positionne sur le bon enregistrement avec un tableSelect ?
SI TableSelect(TABLE_REQ_S)=-1 ALORS RETOUR Ouvre(FEN_Fiche_REQ_S) TableAffiche(TABLE_REQ_S, taCourantBandeau)
Ensuite le valide avec hEnregistre/hModifie; Même résultat.
EcranVersFichier() HEnregistre(REQ_S)
Ensuite, oui j'actualise la requete avec es changements avec :
HExécuteRequête(REQ_S, hModifieFichier) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.363 mensajes |
|
| Publicado el 20,agosto 2020 - 23:44 |
Bonjour, le problème viens du fait que lors du premier enregistrement, la requête ne sait pas qu'elle est modifiable (tu lui dit après.) Il faut placer ton HExécuteRequête(REQ_S, hModifieFichier) Dans le code d'initialisation du champ table.De plus, étant donné que le HEnregistre modifie directement ta requête, il est inutile de la rappeler après
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 371 mensajes |
|
| Publicado el 21,agosto 2020 - 09:34 |
| En lisant le code je me disais la meme chose |
| |
| |
| | | |
|
| | | | |
| | |
|