OVH Cloud OVH Cloud

Passage numérique vers Id Automatique

4 réponses
Avatar
Hasan Ozdil
Bonjour,

J'ai d=E9couvert Windev il n'y a pas tr=E8s longtemps et je rencontre un
premier gros probl=E8me suite =E0 une migration de donn=E9es.

J'ai une table qui poss=E8de un id de type num=E9rique. J'aimerais que
pour la prochaine version du logiciel pass=E9 cet id en type id
automatique.

Le changement de type ne pose pas de probl=E8me en soi, mais lors de
l'ajout d'un nouvel enregistrement. L'id automatique commence =E0 1...

Je suis persuad=E9 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 =E0 ce probl=E8me qu'il n'h=E9site surtout pas

Merci Beaucoup
Hasan OZDIL, Bruxelles

4 réponses

Avatar
Eric
Le 6 avril 2006 à 14:39, dans
<news:, Hasan
Ozdil nous disait :

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.



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
Avatar
Hasan Ozdil
Merci beaucoup 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
Avatar
Eric
Le 6 avril 2006 à 16:53, dans
<news:, Hasan
Ozdil nous disait :

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.



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
Avatar
Hasan Ozdil
Très bonne idée,

Je vais suivre vos conseils

Merci

Hasan