begin process at 2012 02 09 21:08:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Bases de données

 > 

récupérer l'id après un insert...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

récupérer l'id après un insert...

mercredi 28 décembre 2005 à 22:13:39 | récupérer l'id après un insert...

_ben

Bonjour,
je souhaite insérer un nouvel enregistrement dans une table.
Il me faut récupérer l'id de cet enregistrement soit la valeur de la clé primaire lui correspondant.
J'utilise un TQuery pour ca, le TUpdateSQL est moins pratique pour moi les données à insérer provenant de fichier et nom d'un dbcontrole(je ne travaille pas avec un dbgrid et un datasource..etc).
Comment faire donc après l'insert....pour récupérer la valeur de la clé primaire de cet enregistrement..existe t il une propriété du dataset ou je peux l'avoir?


Si quelqu'un à une idée...

jeudi 29 décembre 2005 à 02:13:55 | Re : récupérer l'id après un insert...

f0xi

Membre Club Administrateur CodeS-SourceS
mmm je suis pas expert en SQL sous delphi mais, pour ce que je sais en MySQL, une fois l'insertion faite, il suffit d'aller chercher l'entrée que l'on a ajouter pour recuperer son ID.

Si on as eu l'inteligence d'utilliser un ID en auto-increment, logiquement il suffit de recuperer le dernier ID enregistré et de lui ajouter 1.
MAIS! dans certain cas, selon la BDD, une valeur deja allouée et supprimée ne peut etre reutilisée.
par exemple si l'enregistrement 28 a ete supprimer et que c'été le dernier element ajouter, le prochain serat 29 et non 28.
alors que pourtant si on prend le dernier element (27) +1 (donc 28) on a un ID erroné.

dans tout les cas, il suffit simplement de sortir les Elements par l'ID et de recupperer le plus grand qu'il soit de type Int ou TimeStamp.

(syntaxe MySQL)

SELECT id FROM base ORDER BY id LIMIT 1 DESC

en gros : donne moi le dernier ID dans BASE par ordre descroissant (plus grand au plus petit)

cela devrais te donner l'ID du dernier element ajouter. Ce n'est peut etre pas la meilleure methode mais au moins elle fonctionne.



La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.

jeudi 29 décembre 2005 à 09:49:13 | Re : récupérer l'id après un insert...

deubal

Réponse acceptée !
salut, moi aussi j'ai eu le meme probleme que toi,
je fais ma requete insert into, et ensuite je fais une requete de selection ('select max(cle) as maxicle from matable')
C'est un peu le meme style que ce que t'as suggéré f0xi, a toi de voir...
jeudi 29 décembre 2005 à 11:25:53 | Re : récupérer l'id après un insert...

_ben

La question que je me pose c'est en fait de savoir si la requête insert ne renvoie pas une valeur dans le dataset concernant la clé primaire si il y en a une..car en php il existe une fonction mysql_id qui exécutée après une requête de type insert permet de récupérer le nouvel id...

Je souhaiterais éviter d'avoir à faire une nouvelle requête....



Cette discussion est classée dans : récupérer, insert, enregistrement, insérer, id


Répondre à ce message

Sujets en rapport avec ce message

Récupérer la clé d'un enregistrement [ par freeman44 ] Alors voila : J'exécute une requête SQL lors du clik sur un bouton: "Insert into tblEvaluateur values(nomEvaluateur, prenomEvaluateur)" Ca marche tres comment récupérer l'id d'un enreg d'une table [ par dsamcawfreve ] bonjour, voici ma problématique : j'ai une table "jouets" avec les champs suivants :j_id : autoincj_libel :string(100) dont 2 enreg :1 - CAMION clé étrangère [ par csandrine ] j'ai insérer un enregistrement dans ma table interprete(num_interprete, nom) . Je dois ensuite insérer un nouvel enregistrement dans la tablecd(num_cd Comment récupérer les Device ID d'une carte PCI? [ par ProcesseurFou ] Bonjour, Je suis entrain de développer un logiciel de mesure des signaux d'une carte PCI DVBS ( réception satellite). Je gère directement les instruc dbgrid [ par houeg ] bonjour,quelqu'un peut il m'expliquer comment faire pour récupérer l'enregistrement en cours de sélection (par un utilisateur) dans un DBGrid ?je ne v dbgrid [ par houeg ] bonjour,quelqu'un peut il m'expliquer comment faire pour récupérer l'enregistrement en cours de sélection (par un utilisateur) dans un DBGrid ?je ne v MySQL & DBExpress: Last_Insert_Id() [ par pfabien ] Bonjour,Je rencontre un problème avec DBexpress et MySQL pour récupérer l'enregistrement qui vient d'être inséré dans une table. La requete 'SELECT LA Comment récupérer un nom de fichier affiché dans un ShellListView ? [ par denji ] Bonjour à tousvoila, je n' arrive pas à récupérer les nom des fichiers affichés dans un ShellListView.l'instruction : ShellListView.Item[i].caption ne Recherche de code pour jeu d'enregistrement [ par clemot ] Salut je recherche un exemple ou des exemples de code pourun jeu d'enregistrement à partir de TDBCtrlGrid et de stringgrid pouyr enregistrer des donn Obtenir la valeur de l'enregistrement [ par Frank19 ] Bonjour, jaimerais avoir les valeurs de l'enregistrement sur le quel je suis positionné avec un Query ... voici mon code : Query_connection.SQL.Cle


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 13,822 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales