Passage numérique vers Id Automatique
Le
Hasan Ozdil
Bonjour,
J'ai découvert Windev il n'y a pas très longtemps et je rencontre un
premier gros problème suite à une migration de données.
J'ai une table qui possède un id de type numérique. J'aimerais que
pour la prochaine version du logiciel passé cet id en type id
automatique.
Le changement de type ne pose pas de problème en soi, mais lors de
l'ajout d'un nouvel enregistrement. L'id automatique commence à 1
Je suis persuadé qu'il y a une option quelque part qui me permettrait
de lui faire prendre en compte le dernier id.
Si qqun a une solution à ce problème qu'il n'hésite surtout pas
Merci Beaucoup
Hasan OZDIL, Bruxelles
J'ai découvert Windev il n'y a pas très longtemps et je rencontre un
premier gros problème suite à une migration de données.
J'ai une table qui possède un id de type numérique. J'aimerais que
pour la prochaine version du logiciel passé cet id en type id
automatique.
Le changement de type ne pose pas de problème en soi, mais lors de
l'ajout d'un nouvel enregistrement. L'id automatique commence à 1
Je suis persuadé qu'il y a une option quelque part qui me permettrait
de lui faire prendre en compte le dernier id.
Si qqun a une solution à ce problème qu'il n'hésite surtout pas
Merci Beaucoup
Hasan OZDIL, Bruxelles

Poser une question


Ozdil nous disait :
Lors du premier ajout que vous ferez dans votre fichier modifié, il
faudra lire au préalable la valeur du plus grand id, puis lors du
HAjoute, utiliser l'option HFixedAuto. Par exemple :
HlitDernier(MaTable, MonId)
IdMax=MaTable.MonId
// Remplissage des zones de MaTable
...
MaTable.MonId=IdMax+1
HAjoute(MaTable, HFixedAuto)
Lors des ajouts ultérieurs, vous pourrez utiliser HAjoute sans option,
MonId s'incrémentera automatiquement.
Voir l'aide sur HAjoute.
--
Eric
Votre solution fonctionne, cependant elle me posera des problèmes lors
de la mise à jour des données de la version précédentes du
programme.
Je vais, je pense devoir garder un id de type numérique et gérer
moi-même id automatiquement, sauf si wdconvert.exe a une option
permettant de recréer la zone où il stocke le dernier id
Merci encore pour cette solution
Hasan
Ozdil nous disait :
Pas nécessairement. Dans ce genre de cas, je procèderais de la façon
suivante :
- test de l'existence d'un fichier ini spécifique (par exemple
ModifId.ini)
- si le fichier n'existe pas, je force mon identifiant dans le HAjoute
et je crée ModifID.ini
- si le fichier existe, donc à partir de la deuxième fois, j'utilise un
HAjoute normal
- lors de la prochaine mise à jour du programme, je supprime le test de
l'existence du fichier
On peut aussi faire la même chose avec une valeur de la base de registre
créée spécialement.
--
Eric
Je vais suivre vos conseils
Merci
Hasan