PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Problème avec la fonction Hajoute
Problème avec la fonction Hajoute
Débuté par ando, 27 fév. 2006 09:42 - 4 réponses
Posté le 27 février 2006 - 09:42
Bonjour à tous,
La semaine dernière, tout fonctionnait normalement avec la fonction HAjoute().
Alors que ce matin, j'ai refait un certain test et il arrive que la fonction n'ajoute pas les enregistrements lesquels sont obtenus après la fonction EcranVersFichier().
En fait, ce qui se passe, c'est qu'elle ajoute un enregistrement dont une rubrique (unique) existe déjà dans la table, ce qui retourne toujours une erreur de doublons.
J'ai essayé de modifier le type de la rubrique concernée ( elle n'est plus désormais un identifiant unique), et ai constaté que la fonction HAjoute() ajoute bien un enregistrement dont cette rubrique existe déjà.

Voici le code correspondant :

//On ajoute l'Entreprise
//On crée l'identifiant pour connaître que l'Entreprise fait partie du groupe en //cours
HRéindexe(Entreprises)
Entreprises.IdentifiantGroupe=SansEspace(gNomGroupeEnCours) + "_" + txtSigle
EcranVersFichier(frmMain,Entreprises)
HAjoute(Entreprises)
Posté le 27 février 2006 - 10:47
//On ajoute l'Entreprise
//On crée l'identifiant pour connaître que l'Entreprise fait partie du groupe en //cours
============================
HRéindexe(Entreprises)

============================

dans l'aide WD il est dit :

Ré-indexation "à chaud"

La ré-indexation d'un fichier de données peut être effectuée même si des applications accèdent à ce fichier de données.

Pendant la ré-indexation, les différentes applications manipulant les données du fichier (lecture ou écriture d'enregistrements) seront temporairement arrêtées jusqu'à la fin de la ré-indexation.

===================================

Peut-être faut-il éviter de réindexer juste avant "EcranversFichier" ?
Posté le 27 février 2006 - 11:32
Bonjour,

A mon avis, il serait plus judicieux de faire la commande
EcranVersFichier avant l'affectation de l'identifiant du fichier
Entreprises...

Chris.

Après mure réflexion, Fabrice Ando a écrit :

Bonjour à tous,
La semaine dernière, tout fonctionnait normalement avec la fonction
HAjoute(). Alors que ce matin, j'ai refait un certain test et il arrive que
la fonction n'ajoute pas les enregistrements lesquels sont obtenus après la
fonction EcranVersFichier(). En fait, ce qui se passe, c'est qu'elle ajoute
un enregistrement dont une rubrique (unique) existe déjà dans la table, ce
qui retourne toujours une erreur de doublons. J'ai essayé de modifier le type
de la rubrique concernée ( elle n'est plus désormais un identifiant unique),
et ai constaté que la fonction HAjoute() ajoute bien un enregistrement dont
cette rubrique existe déjà.

Voici le code correspondant :

//On ajoute l'Entreprise
//On crée l'identifiant pour connaître que l'Entreprise fait partie du
groupe en //cours HRéindexe(Entreprises)
Entreprises.IdentifiantGroupe=SansEspace(gNomGroupeEnCours) + "_" +
txtSigle EcranVersFichier(frmMain,Entreprises)
HAjoute(Entreprises)



--
Chris
Posté le 27 février 2006 - 11:32
S dans ta fiche il existe un champ IdentifiantGroupes relié à ton fichier, tu écrases la valeur Entreprises.IdentifiantGroupe=SansEspace(gNomGroupeEnCours) + "_" + txtSigle
par celle contenu dans ton champ 'écran' en faisant EcranVersFichier.

Si c'est le cas, inverse ces deux lignes.

Hubert
Posté le 28 février 2006 - 09:19
Bonjour à tous,
J'ai inversé les 2 lignes (la commande EcranVersFichier() et l'affectation de valeur à IdentifiantGroupe.
Et bien, ca marche!
Merci de votre aide.
A+.