|
[WM17] Identifiant sur Insert |
Débuté par Jahwa, 17 mai 2012 20:54 - 6 réponses |
| |
| | | |
|
| |
Membre enregistré 54 messages |
|
Posté le 17 mai 2012 - 20:54 |
Hello,
Peut-on récupérer automatiquement l'identifiant automatique créer lors d'un Insert par requête enregistrée.
Par exemple dans le genre: ID = HExécuteRequête(REQ_InsertClient,hRequêteDéfaut,ParamNom, ParamPrenom,Param...)
Existe-t-il une fonction qui fasse cela, ou faut-il rechercher l'ID manuellement ?
Merci de vos réponses Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 54 messages |
|
Posté le 23 mai 2012 - 15:37 |
coucou,
pas trop d'idées ?
faut-il passer par un "select max(id) from client" ?
c'est pas le top s'il y a plusieurs saisies simultanées |
| |
| |
| | | |
|
| | |
| |
Posté le 23 mai 2012 - 18:31 |
Jahwa a formulé ce vendredi :
Hello,
Peut-on récupérer automatiquement l'identifiant automatique créer lors d'un Insert par requête enregistrée.
Par exemple dans le genre: ID = HExécuteRequête(REQ_InsertClient,hRequêteDéfaut,ParamNom, ParamPrenom,Param...)
Existe-t-il une fonction qui fasse cela, ou faut-il rechercher l'ID manuellement ?
Merci de vos réponses Cordialement
LAST_INSERT_ID
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 54 messages |
|
Posté le 24 mai 2012 - 11:10 |
ok merci JeAn-PhI
ça doit être cela, et c'est dans la liste des commandes sql disponibles avec la commande HExecuteRequeteSql. J'ai vu ça dans le manuel des Etats & Requêtes de Windev.
... bon 'suffit de la mettre en oeuvre
je vous tiens au courant |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 54 messages |
|
Posté le 25 mai 2012 - 12:39 |
bon , je n'arrive pas à executer la requete, je la code comme cela:
SRequete est une chaîne ResSQL est Source de Données
sRequete= "LAST_INSERT_ID()" SI HExécuteRequêteSQL(ResSQL,sRequete) = Faux ALORS Erreur("Erreur HyperFileSQL : " + HErreurInfo()) RETOUR FIN
ça me renvoi: "Mot Inattendu" J'ai essayé , avec le même résultat "LAST_INSERT_ID" "last_insert_id" "last_insert_id()" "Select LAST_INSERT_ID() as lastId from Depenses"
Si vous avez des idées ... même une seule ! |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2012 - 17:04 |
Jahwa avait écrit le 25/05/2012 :
bon , je n'arrive pas à executer la requete, je la code comme cela: SRequete est une chaîne ResSQL est Source de Données sRequete= "LAST_INSERT_ID()" SI HExécuteRequêteSQL(ResSQL,sRequete) = Faux ALORS Erreur("Erreur HyperFileSQL : " + HErreurInfo()) RETOUR FIN ça me renvoi: "Mot Inattendu" J'ai essayé , avec le même résultat "LAST_INSERT_ID" "last_insert_id" "last_insert_id()" "Select LAST_INSERT_ID() as lastId from Depenses" Si vous avez des idées ... même une seule !
en SQL il faut faire
"insert into matable set macol=maval, macol2=maval2"
et de suite après :
"select last_insert_id()"
l'idéal est de le faire dans une transaction
mais je ne sais pas si HF supporte cette fonction !
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 54 messages |
|
Posté le 25 mai 2012 - 18:11 |
J'ai essayé :
===================================== sMaRequeteINSERT,sMaRequeteID est une chaîne sdResultInsert,sdResultID est Source de Données
sMaRequeteINSERT = "INSERT INTO Depenses(Colocataire,Montant,DateDepense,ObjetDep) VALUES ( 'Jacky','121', '20120501','Achat Lidl')" sMaRequeteID = "select last_insert_id()"
SI HExécuteRequêteSQL(sdResultInsert,sMaRequeteINSERT) = Faux ALORS Erreur("Erreur HyperFileSQL : " + HErreurInfo()) RETOUR FIN
SI HExécuteRequêteSQL(sdResultID,sMaRequeteID) = Faux ALORS Erreur("Erreur HyperFileSQL : " + HErreurInfo()) RETOUR FIN ===========================================================
mais toujours un retour "Mot inattendu"
Bon, pour le moment je développe sur une tablette en mono-poste, mais l'application est destinée à du multi-post client-serveur, c'est pour ça qu'un simple "max(id) from client" n'est pas satisfaisant !
Je continue à chercher ... merci encore Jean-Phi |
| |
| |
| | | |
|
| | | | |
| | |
|