PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → SQL.IdAuto
SQL.IdAuto
Débuté par kick71, 18 mar. 2022 10:02 - 6 réponses
Membre enregistré
874 messages
Popularité : +39 (51 votes)
Posté le 18 mars 2022 - 10:02
Bonjour à tous,

Je migre une application Windev vers WindevMobile.
Avec des possibilités en moins soit, mais fonctionnelle.

Je n'utilise pas d'analyse dans mon projet, plus des classes et des lignes de commandes sql avec "HexecuterequeteSql". ( Update,Delete, select etc ... )

Lors de mes Inserts, en Windev, pour récupérer le IdAuto, j'utilisais la syntaxe SQL.Idauto en sortie de l'exécution.

En WindevMobile cela n'est pas possible, et ayant plusieurs utilisateurs, je ne préfère pas relire le dernier record de la table concernée pour récupérer le Id.

Existe-il une syntaxe équivalente qu'en windev ? Je n'ai pas trouvé chaussure à mon pied dans le forum.
Ou technique imparable et fiable pour cela ?

Merci pour votre aide potentielle.

++
Bon dev à tous

Christian

--
Christian - kick71
Membre enregistré
477 messages
Popularité : +20 (20 votes)
Posté le 18 mars 2022 - 23:10
pourquoi simplement ne pas récupérer l'id en sortie de requete, le recordset en memoire est le bon, pas besoin de relecture
Membre enregistré
874 messages
Popularité : +39 (51 votes)
Posté le 19 mars 2022 - 00:58
Merci Stef1811

Justement le sql.IdAuto permet de récupérer le id qui vient d'être inséré suite au HexecuteRequeteSQL
En windev cela fonctionne , mais pas en windevmobile }:(

--
Christian - kick71
Membre enregistré
477 messages
Popularité : +20 (20 votes)
Posté le 19 mars 2022 - 19:53
oui j'avais bien compris l'impossibilité je parlais en fait de recuperer l'id de la table

Par exemple avec une table qui contient un id (automatique) et un libelle

sdReq est une Source dede Données

sMaReq est une chaîne =
[
INSERT INTO MaTable (Libellé) VALUES (' ')
]

SI HExécuteRequêteSQL(sdReq,sMaReq) ALORS
// affiche l"id auto de l'enregistrement ajouté
ToastAffiche(MaTable.Id)
SINON
Erreur(ErreurInfo())
FIN
Membre enregistré
477 messages
Popularité : +20 (20 votes)
Posté le 19 mars 2022 - 21:35
Précision mon exemple ne fonctionne bien sur qu'avec une base locale HFclassic ou sqlite mais pas en C/S
Membre enregistré
874 messages
Popularité : +39 (51 votes)
Posté le 20 mars 2022 - 19:47
Merci Stef1811

Et oui, je suis en HFCS }:(

--
Christian - kick71
Posté le 20 janvier 2023 - 13:33
Bonjour à tous,

Les versions "récentes" (3.35) de SQLite accepte la syntaxe :

INSERT INTO users (first_name, last_name)
VALUES ('Jane', 'Doe')
RETURNING id;

bien pratique pour récupérer l'ID du dernier enregistrement.
Il semblerait que l'accès natif n'accepte pas la syntaxe.
L'un d'entre vous a-t-il réussi à l'utiliser ?

Dans l'attente de vos réponses ...