|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Erreur sur la fonction "HSUPPRIME" |
Débuté par Chambiges, 13 juil. 2018 09:09 - 7 réponses |
| |
| | | |
|
| |
Membre enregistré 86 messages Popularité : +3 (3 votes) |
|
Posté le 13 juillet 2018 - 09:09 |
Bonjour Sur le fonction "Hsupprime" j'ai le message d'erreur suivant : "L'enregistrement n°<18> se trouve en dehors du fichier <Dossiers>" Hors l'enregistrement 18 existe bien dans le fichier "Dossiers"
HLitRecherche(Dossiers,IDDossiers,COL_IDDossier) sFichier est une chaîne nDossier est un entier nDossier=COL_IDDossier sFichier=COL_Chemin sErreur est une chaîne SI fRepSupprime(sFichier,frVersCorbeille) =Vrai ALORS HChangeRep(Dossiers,gsCheminDossier) HRecherche(Dossiers,IDDossiers,COL_IDDossier) HSupprime(Dossiers,nDossier) sErreur =ErreurInfo(errMessage)
Info("Dossier supprimer") TableAffiche(TABLE_Dossiers,taDébut) SINON
Info("Impossible de supprimer le dossier",sErreur) FIN CAS 3
RETOUR FIN D'avance merci pour votre éclairage JCB
-- On a le droit de ne pas savoir, on n'a pas le droit de ne pas apprendre Jean Claude Boulet |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +15 (19 votes) |
|
Posté le 13 juillet 2018 - 09:24 |
Bonjour. En extrait de la doc sur Hrecherche : "Positionne sur le premier enregistrement du fichier de données dont la valeur d'une rubrique spécifique est supérieure ou égale à une valeur recherchée (recherche générique par défaut). L'enregistrement n'est pas lu. Pour lire l'enregistrement, utilisez la fonction HLitRecherche. " -> donc à mon avis quand tu fais le Hsupprime l'enregistrement sur lequel tu pointes n'est pas le bon.
Michel. PS: une petite remarque qui n'engage que moi -> Tu utilises Hlitrecherche -> recherche générique et non à l'identique. Ne vaut-il pas mieux utiliser HlitRecherchePremier ? (Je ne connais pas le but du traitement !) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 165 messages Popularité : +18 (20 votes) |
|
Posté le 13 juillet 2018 - 09:45 |
Bonjour,
Je n'utilise jamais HRecherche mais à voir sa documentation, je vois qu'il faut passer explicitement HNumEnr aux appels suivants (notamment HSupprime, c'est d'ailleurs l'exemple de la page d'aide). HRecherche ne lit pas l'enregistrement Or, dans votre code (de ce que j'en comprends),, vous passez à HSupprime l'identifiant de l'enregistrement et non le numéro d'enregistrement.
Pour simplifier la lecture et la compréhension, je vous conseille d'utiliser HLitRecherche au lieu de HRecherche puis d'appeler HSupprime sans autre paramètre que le nom du fichier. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 86 messages Popularité : +3 (3 votes) |
|
Posté le 14 juillet 2018 - 09:21 |
Merci pour vos réponses qui mon mis sur la voix de la réflexion et voici mon code, si cela peut servir à d'autres.
SELON Dialogue("Voulez vous supprimer ce dossier ?")
CAS 1 TableSupprimeSelect(TABLE_Dossiers) CAS 2 HLitRecherche(Dossiers,IDDossiers,COL_IDDossier) sFichier est une chaîne nDossier est un entier nDossier=COL_IDDossier sFichier=COL_Chemin sErreur est une chaîne HFerme("*") SI fRepSupprime(sFichier,frVersCorbeille) =Vrai ALORS
sErreur =ErreurInfo(errMessage) TableSupprimeSelect(TABLE_Dossiers) Info("Dossier supprimer") SINON Info("Impossible de supprimer le dossier",sErreur) FIN CAS 3
RETOUR FIN TableAffiche(TABLE_Dossiers,taDébut)
-- On a le droit de ne pas savoir, on n'a pas le droit de ne pas apprendre Jean Claude Boulet |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +15 (19 votes) |
|
Posté le 16 juillet 2018 - 12:31 |
Bonjour. J'ai du mal à appréhender l'extrait de code fourni. Finalement tu utilises TableSupprimeSelect. Mes remarques : - je ne vois pas l'utilité du Hferme - Personnelement : je préfère toujours utiliser un Hsupprime ou une requête delete et faire mon rafraîchissement de table après je trouve cela plus propre. Michel. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 86 messages Popularité : +3 (3 votes) |
|
Posté le 16 juillet 2018 - 17:39 |
Bonjour
Le HFerme permet de supprimer le dossier, car sinon des fichiers restent ouverts et suppression du dossier impossible. Le TableSupprimeSelect est la solution de simplicité qui fonctionne bien. Jean Claude
-- On a le droit de ne pas savoir, on n'a pas le droit de ne pas apprendre Jean Claude Boulet |
| |
| |
| | | |
|
| | |
| |
Posté le 16 juillet 2018 - 19:36 |
Bonjour,
Peut être en initialisant les variables en amont du HLitRecherche
CAS 2 sFichier est une chaîne = "" nDossier est un entier = "" nDossier=COL_IDDossier = "" sFichier=COL_Chemin = "" sErreur est une chaîne = "" HLitRecherche(Dossiers,IDDossiers,COL_IDDossier) ...
Alain |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 86 messages Popularité : +3 (3 votes) |
|
Posté le 17 juillet 2018 - 12:24 |
Bonjour Effectivement, les déclarations de variables après le HLitRecherche sont une erreur de coller Mais la solution que j'ai posté le 14 Juillet fonctionne Merci quand meme
-- On a le droit de ne pas savoir, on n'a pas le droit de ne pas apprendre Jean Claude BouletMessage modifié, 17 juillet 2018 - 12:27 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|