OVH Cloud OVH Cloud

Requete INSERT et Clé primaire (identifiant)

8 réponses
Avatar
I.G.LOG
Bonjour,
Je voudrais recuperer l'identifiant auto apres une requete d'insertion.
Est-ce que l'execution de la requete positionne automatiquement sur
l'enregsitrement qui vient d'etre cree ?
Soit le code suivant:

lReq est une chaine
lTxtSQL est une chaine

// Ajout
lTxtSQL = "insert into STOCKSOR" +...
" (A1CLEUNIK,OLCLEUNIK,DATE,HEURE,QTE,QTEINI,PMP)" +...
" values (" +...
:ArtCBarr:Ident + "," +...
:OlCleunik + "," +...
"'" + :Date + "'," +...
"'" + :Heure + "'," +...
:Qte + "," +...
:QteIni + "," +...
:PMP + ")"
SI HExécuteRequête("lReq",lTxtSQL) ALORS
:Ident = STOCKSOR.SSCLEUNIK // Est-ce que
ca marche ????
FIN

merci encore

8 réponses

Avatar
jacques trepp
I.G.LOG wrote:
Bonjour,
Je voudrais recuperer l'identifiant auto apres une requete
d'insertion. Est-ce que l'execution de la requete positionne
automatiquement sur l'enregsitrement qui vient d'etre cree ?
Soit le code suivant:

lReq est une chaine
lTxtSQL est une chaine

// Ajout
lTxtSQL = "insert into STOCKSOR" +...
" (A1CLEUNIK,OLCLEUNIK,DATE,HEURE,QTE,QTEINI,PMP)" +...
" values (" +...
:ArtCBarr:Ident + "," +...
:OlCleunik + "," +...
"'" + :Date + "'," +...
"'" + :Heure + "'," +...
:Qte + "," +...
:QteIni + "," +...
:PMP + ")"
SI HExécuteRequête("lReq",lTxtSQL) ALORS
:Ident = STOCKSOR.SSCLEUNIK //
Est-ce que ca marche ????
FIN

merci encore




La fonction LAST_INSERT_ID() devrait faire l'affaire, je crois (par un
select)



--
Jacques TREPP
AlbyGest


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.707 / Virus Database: 463 - Release Date: 15/06/2004
Avatar
Roumegou
Le 18/06/2004, jacques trepp a supposé :
I.G.LOG wrote:
Bonjour,
Je voudrais recuperer l'identifiant auto apres une requete
d'insertion. Est-ce que l'execution de la requete positionne
automatiquement sur l'enregsitrement qui vient d'etre cree ?
Soit le code suivant:

lReq est une chaine
lTxtSQL est une chaine

// Ajout
lTxtSQL = "insert into STOCKSOR" +...
" (A1CLEUNIK,OLCLEUNIK,DATE,HEURE,QTE,QTEINI,PMP)" +...
" values (" +...
:ArtCBarr:Ident + "," +...
:OlCleunik + "," +...
"'" + :Date + "'," +...
"'" + :Heure + "'," +...
:Qte + "," +...
:QteIni + "," +...
:PMP + ")"
SI HExécuteRequête("lReq",lTxtSQL) ALORS
:Ident = STOCKSOR.SSCLEUNIK //
Est-ce que ca marche ????
FIN

merci encore




La fonction LAST_INSERT_ID() devrait faire l'affaire, je crois (par un
select)



Dans le cas de mySQL seulement mais comme le SGBD n'est pas précisé ...

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
jacques trepp
Roumegou wrote:
Le 18/06/2004, jacques trepp a supposé :
I.G.LOG wrote:
Bonjour,
Je voudrais recuperer l'identifiant auto apres une requete
d'insertion. Est-ce que l'execution de la requete positionne
automatiquement sur l'enregsitrement qui vient d'etre cree ?
Soit le code suivant:

lReq est une chaine
lTxtSQL est une chaine

// Ajout
lTxtSQL = "insert into STOCKSOR" +...
" (A1CLEUNIK,OLCLEUNIK,DATE,HEURE,QTE,QTEINI,PMP)" +...
" values (" +...
:ArtCBarr:Ident + "," +...
:OlCleunik + "," +...
"'" + :Date + "'," +...
"'" + :Heure + "'," +...
:Qte + "," +...
:QteIni + "," +...
:PMP + ")"
SI HExécuteRequête("lReq",lTxtSQL) ALORS
:Ident = STOCKSOR.SSCLEUNIK //
Est-ce que ca marche ????
FIN

merci encore




La fonction LAST_INSERT_ID() devrait faire l'affaire, je crois (par
un select)



Dans le cas de mySQL seulement mais comme le SGBD n'est pas précisé
...



exact :( je m'emballe, moi. pour une fois que je sais un truc ;)

--
Jacques TREPP
AlbyGest


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.708 / Virus Database: 464 - Release Date: 18/06/2004
Avatar
I.G.LOG
Bonjour,
Est-ce que la syntaxe est "select LAST_INSERT_ID() from ARTSTOCK" ?!
Avatar
jacques trepp
I.G.LOG wrote:
Bonjour,
Est-ce que la syntaxe est "select LAST_INSERT_ID() from ARTSTOCK" ?!



oui. Quelle est ta base ?

--
Jacques TREPP
AlbyGest


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.708 / Virus Database: 464 - Release Date: 18/06/2004
Avatar
I.G.LOG
J'envisage de passer sur MySQL. Pour l'instant j'évalue la charge de travail
pour migrer de HF -> C/S
Merci beaucoup

"jacques trepp" a écrit dans le message de
news:40d6ce91$0$20304$
I.G.LOG wrote:
> Bonjour,
> Est-ce que la syntaxe est "select LAST_INSERT_ID() from ARTSTOCK" ?!

oui. Quelle est ta base ?

--
Jacques TREPP
AlbyGest


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.708 / Virus Database: 464 - Release Date: 18/06/2004




Avatar
Roumegou
jacques trepp avait soumis l'idée :
I.G.LOG wrote:
Bonjour,
Est-ce que la syntaxe est "select LAST_INSERT_ID() from ARTSTOCK" ?!



oui. Quelle est ta base ?



Non ! la syntaxe est : select LAST_INSERT_ID()

on ne spécifie pas de tables.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
jacques trepp
Roumegou wrote:
jacques trepp avait soumis l'idée :
I.G.LOG wrote:
Bonjour,
Est-ce que la syntaxe est "select LAST_INSERT_ID() from ARTSTOCK"
?!



oui. Quelle est ta base ?



Non ! la syntaxe est : select LAST_INSERT_ID()

on ne spécifie pas de tables.



Pardon, j'ai répondu de travers parce que j'utilise la classe de Frédéric
Emprin, où on peut rattacher le raccourci de la table à la variable
dernier_id, exemple :

SI ETK:SQLInsert() ALORS
nouveau_ticket = ETK:dernier_ID
FIN

plus plates en seront mes excuses :)
--
Jacques TREPP
AlbyGest


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.708 / Virus Database: 464 - Release Date: 18/06/2004