PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → [WD8] Mysql et Hnumenr
[WD8] Mysql et Hnumenr
Débuté par edouard.vaughan, 18 jan. 2005 19:20 - 5 réponses
Posté le 18 janvier 2005 - 19:20
En accès natif Mysql, il semble que le N° d'enregistrement HNUMENR ne soit pas retourné.
Y-a-t-il un moyen de le récupérer ou une technique pour contourner le problème ?
Posté le 18 janvier 2005 - 19:37
Si je ne me trompe pas (ce qui n'est pas impossible parce que je
commence à fatiguer), un identifiant automatique a la même valeur qu'un
numéro d'enregistrement (s'il n'est pas modifié par programmation). Tu
peux donc créer un champ IDAUTO qui te permettra de récupérer le numéro
d'enregistrement...

E. V. a écrit :
En accès natif Mysql, il semble que le N° d'enregistrement HNUMENR ne soit pas retourné.
Y-a-t-il un moyen de le récupérer ou une technique pour contourner le problème ?

Posté le 19 janvier 2005 - 09:05
Merci,

j'ai bien envisagé cette solution, mais je suis en train de tester sur Mysql pour des besoins futurs une application qui fonctionne actuellement en HF et en AS400 Natif et qui comporte une centaine de fichiers, plus de 150 000 lignes de code, avec une utilisation intensive de hnumenr.
Cette application est déployée actuellement sur plus de 400 postes en réseau ou en autonome alors modifier et migrer tous les postes sera assez lourd.
Je ne me résoudrai à cette solution qu'en dernier recours.
Posté le 19 janvier 2005 - 10:31
Oublie ce que j'ai dit :)
Si il y suppression d'enregistrement, il y a décalage entre l'id auto et
le numéro d'enregistrement... oups


Hervé a écrit :
Si je ne me trompe pas (ce qui n'est pas impossible parce que je
commence à fatiguer), un identifiant automatique a la même valeur qu'un
numéro d'enregistrement (s'il n'est pas modifié par programmation). Tu
peux donc créer un champ IDAUTO qui te permettra de récupérer le numéro
d'enregistrement...

E. V. a écrit :

En accès natif Mysql, il semble que le N° d'enregistrement HNUMENR ne soit pas retourné.
Y-a-t-il un moyen de le récupérer ou une technique pour contourner le problème ?

Posté le 19 janvier 2005 - 11:10
La colonne IDAUTO ensuite faire un:

CommandeLocale est une chaîne
ResultatLocal est un booléen
ReqLocale est une Source de Données

LeNumEnr est un entier


SQLTransaction(sqlDébut,MaConnexion)

CommandeLocale=" Insert TaTable(Col1..) Values (Val1..) " // Sauf la colonne IDAUTO

ResultatLocal=HExécuteRequêteSQL
(ReqLocale,MaConnexion,hRequêteSansCorrection,CommandeLocale)

CommandeLocale=" Select last_insert_id() " // Permet de remonter le dernier IDAUTO

ResultatLocal=HExécuteRequêteSQL(ReqLocale,MaConnexion,hRequêteSansCorrection,CommandeLocale)

SI ResultatLocal=Vrai ALORS
HLitPremier(ReqLocale)
LeNumEnr=HRécupèreEnregistrement(ReqLocale)
FIN

SQLTransaction(sqlFin,MaConnexion)

Pas contre il y a du boulot pour tout changer !

Bon courage.

A+
Posté le 19 janvier 2005 - 11:14
Perso dans tout mes fichiers je conserve l'id automatique meme si j'ai
une autre clé unique. Pour l'acces natif je ne peux pas tester et
répondre , il n'est plus dispo avec WD9 pour le moment :/



Hervé wrote:

Oublie ce que j'ai dit :)
Si il y suppression d'enregistrement, il y a décalage entre l'id auto et
le numéro d'enregistrement... oups


Hervé a écrit :

Si je ne me trompe pas (ce qui n'est pas impossible parce que je
commence à fatiguer), un identifiant automatique a la même valeur qu'un
numéro d'enregistrement (s'il n'est pas modifié par programmation). Tu
peux donc créer un champ IDAUTO qui te permettra de récupérer le numéro
d'enregistrement...

E. V. a écrit :


En accès natif Mysql, il semble que le N° d'enregistrement HNUMENR ne soit pas retourné.
Y-a-t-il un moyen de le récupérer ou une technique pour contourner le problème ?