PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → SVP aide sur Hmodifie
SVP aide sur Hmodifie
Started by Raoul ROSENKRANZ, Jun., 27 2016 4:59 PM - 7 replies
Registered member
3 messages
Posted on June, 27 2016 - 4:59 PM
Je comprend pas pourquoi mon code me fait une erreur de doublon !
Dans mon code j'ai une base de données avec comme clé unique la rubrique MarcheMeca du fichier DernierCycle,
si elle est trouvé elle doit être modifier, sinon elle doit être ajouter !
j'ai placer le code ci-dessous à la sortie d'un champ de saisie CycleReel,
Mais à la sortie de ce champ, j'ai une erreur de doublons ! Pourquoi ? j'arrive pas à comprendre !;(

MM est une chaîne
App est une chaîne
Zyklus est un numérique
ZyklusR est un numérique

SI {"COMBO_MarcheMecaL"+Lind+"S"+i}..ValeurAffichée <> "" ALORS
SI {"SAI_Ligne"+Lind+"CycleReel"+i} > 0 ALORS
MM = {"COMBO_MarcheMecaL"+Lind+"S"+i}..ValeurAffichée
App = {"SAI_AppellationL"+Lind+"S"+i}..ValeurAffichée
Zyklus = {"SAI_Ligne"+Lind+"CycleMM"+i}..ValeurAffichée
ZyklusR = {"SAI_Ligne"+Lind+"CycleReel"+i}..ValeurAffichée
HLitRecherche(DernierCycle,MarcheMecanique,MM)
SI HTrouve()=Vrai ALORS
DernierCycle.CycleReel = ZyklusR
HModifie(DernierCycle)
SINON
DernierCycle.MarcheMecanique = MM
DernierCycle.Appellation = App
DernierCycle.CycleTheorique = Zyklus
DernierCycle.CycleReel = ZyklusR
HAjoute(DernierCycle)
FIN
SINON
Info("Es gibt keine produktion mit Zyklus 0 !!!")
RepriseSaisie("SAI_Ligne"+Lind+"CycleMM"+i)
FIN
FIN
Registered member
841 messages
Popularité : +19 (27 votes)
Posted on June, 27 2016 - 5:36 PM
Bonjour,

Je ne sais pas comment est paramétrée ta bdd.
Essaie d'enlever les espace de MM avant les opérations sur la bdd pour etre sur que cela ne provient pas d'une gestion des espaces.

--
Cordialement,
Camus
Posted on June, 28 2016 - 12:39 AM
Bonjour Camus et merci pour votre réponse,

Les paramètre de la base de données HF sont par défaut et MarcheMecanique est la seule clé unique du fichier.
Pour info, en ce qui concerne les espaces, c'est déjà fait, le combo qui représente la MarcheMecanique est limité à
11 caractères ainsi que la rubrique du fichier de données DernierCycle qui est aussi limité à 11 caractères !
Les données concernant le nom de la MarcheMecanique ont toujours 11 caractères.

Cordialement,
Raoul
Registered member
841 messages
Popularité : +19 (27 votes)
Posted on June, 28 2016 - 8:21 AM
Bonjour Raoul

Je sais que j'ai un peu galéré au début avec ce problème parce que les options de recherche renvoient une valeur sans espace ou l'inverse alors que la combo elle doit les garder ou l'inverse.
Il faut essayer dans un premier temps de remplacer MM par une valeur en dur et voir si le problème persiste.

--
Cordialement,
Camus
Posted on June, 28 2016 - 4:05 PM
Désolé, mais faut savoir que je suis un développeur amateur,
Vous pouvez me précisez ce que veux dire une valeur en dur ?

merci pour votre aide.

Raoul
Registered member
841 messages
Popularité : +19 (27 votes)
Posted on June, 28 2016 - 5:39 PM
Au lieu de la variable MM mettre par exemple "TOTO" directement

--
Cordialement,
Camus
Registered member
841 messages
Popularité : +19 (27 votes)
Posted on June, 28 2016 - 5:48 PM
Ou alors il y aurait une autre rubrique qui serait en clef unique et c'est elle qui produirait l'erreur de doublon.
Mais pour ca faudrait que l'on connaisse la structure de ta table.

--
Cordialement,
Camus
Registered member
29 messages
Popularité : +1 (1 vote)
Posted on June, 28 2016 - 6:19 PM
J'avais poster dans l'autre thread pour le meme probleme.

Est ce que le fichier en question provenne d'un bd < v5.5? Si oui elle a surement besion d'etre completer pas des espaces.
Si c'est pas le cas, essaie de mettre l'option hIdentique dans la recherche sur le fichier.

HLitRecherche(DernierCycle,MarcheMecanique,MM,hIdentique)

En esperant que ca aide,

Ben