PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → PROBLEME AVEC HAJOUTE ET hFixeIdAuto
PROBLEME AVEC HAJOUTE ET hFixeIdAuto
Débuté par frankouo, 09 juin 2013 15:17 - 4 réponses
Posté le 09 juin 2013 - 15:17
Bjr,
Dans mon appli j'utilise Hajoute avec l'option hFixeIdAuto s'il y a doublon. Depuis des années çà marche, mais curieusement ces derniers temps il est impossible d'enregistrer au delà d'un certains nombre car la boucle ne s'arrête pas. Voici mon code:
bFirst =vrai
HAjoute(pFich)
TANTQUE HErreurDoublon()
SI bFirst ALORS
HLitDernier(pFich,pIdAuto)
j={pFich+"."+pIdAuto}+1
bFirst=Faux
SINON
j++
FIN
{pFich+"."+pIdAuto}=j
HAjoute(pFich,hFixeIdAuto)
FIN
MERCI POUR VOTRE AIDE
Posté le 04 août 2025 - 18:55
a écrit :
Bjr,
Dans mon appli j'utilise Hajoute avec l'option hFixeIdAuto s'il y a doublon. Depuis des années çà marche, mais curieusement ces derniers temps il est impossible d'enregistrer au delà d'un certains nombre car la boucle ne s'arrête pas. Voici mon code:
bFirst =vrai
HAjoute(pFich)
TANTQUE HErreurDoublon()
SI bFirst ALORS
HLitDernier(pFich,pIdAuto)
j={pFich+"."+pIdAuto}+1
bFirst=Faux
SINON
j++
FIN
{pFich+"."+pIdAuto}=j
HAjoute(pFich,hFixeIdAuto)
FIN
MERCI POUR VOTRE AIDE


// Déclaration Variable pour Idantifiant Automatique.
j est un entier sur 8 octets
Membre enregistré
4 318 messages
Posté le 05 août 2025 - 10:37
Seb a écrit :
Voici mon code:

Je le cherche, je ne le trouve pas. Un code, ça se balise avec les outils fournis.

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Membre enregistré
2 299 messages
Posté le 05 août 2025 - 11:18
}:( ;)
// Déclaration Variable pour Idantifiant Automatique.
j est un entier sur 8 octets
bFirst =Vrai
HAjoute(pFich)
TANTQUE HErreurDoublon()
SI bFirst ALORS
HLitDernier(pFich,pIdAuto)
j={pFich+"."+pIdAuto}+1
bFirst=Faux
SINON
j++
FIN
{pFich+"."+pIdAuto}=j
HAjoute(pFich,hFixeIDAuto)
FIN


--
Bon dev,
Jean-Pierre
Message modifié, 05 août 2025 - 11:20
Membre enregistré
21 messages
Posté le 05 août 2025 - 12:08
Hello,
Je pense plutot que le hserreurDOublon () se déclenche sur une autre clef que l'idAuto.

Le hajoute() est exécuté après un hlitdernier...qui écrase donc ton enregistrement courant .

Conclusion : Tu remplaces bien la valeur de l'Idauto, mais tu réécris l'enregistrement lu par le hlitdernier()

Bon dev.