cs_Finality
Messages postés76Date d'inscriptionsamedi 28 janvier 2006StatutMembreDernière intervention22 janvier 2009
-
26 déc. 2008 à 17:44
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
27 déc. 2008 à 18:20
Bonjour tout le monde,
je travaille actuellement sur un petit script permettant d'insérer des données dans une base Access. Pour cela j'utilise OleDB.
Voilà un exemple d'insertion dans ma base de données :
Code :
//on créé l'objet connection
OleDbConnection Cnx = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CProjects.mdb");
Cnx.Open();
//on insere l'employe dans la BDD
OleDbCommand Cmd = new OleDbCommand("INSERT INTO Personnel(" + TitreChampsSups +") VALUES(" + ValeursChampsSups +")");
Cmd.Connection = Cnx;
Cmd.ExecuteNonQuery();
dans ma table Personnel, la clé primaire est un numéro
automatique. D'où ma question : est-il possible de récupérer le numéro
qui a été attribué à ce nouvel enregistrement ?
Je sais que cela est possible avec d'autres SGBD (MySql par exemple), donc sans doute avec Access.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 26 déc. 2008 à 18:44
Bonsoir,
Pour Access je ne sais pas, mais en SQL c'est la variable @@IDENTITY qui contient la derniere valeur inserrée.
ex "INSERT INTO [MaTable] ([MaColonne]) VALUES ('test') SELECT @@IDENTITY "
retournera la valeur de la colonne de type "identity" attribuée automatiquement
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 27 déc. 2008 à 18:20
Salut,
Attention avec @@IDENTITY, la valeur que cette fonction retourne est la dernière pour la session courante.
Pour une portée plus limitée, voir SCOPE_IDENTITY.