Access @@identity avec numauto et N° de réplication

cendretp Messages postés 6 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 6 mars 2005 - 27 janv. 2005 à 10:16
zenzob00 Messages postés 3 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 16 mai 2008 - 16 mai 2008 à 11:38
Je n'arrive pas à récuperer le guid correspondant lors d'un insert cela fonctionne avec un entier long mais pas avec un N° de réplication.
Est-ce possible ?



string ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0";


ConnectionString +=
@";Data Source=C:\Documents and Settings\Administrateur\Mes documents\CSharp\GP\Base\GP.mdb";



System.
Console.WriteLine(ConnectionString);



OleDbConnection oleDB =
new
OleDbConnection(ConnectionString);


oleDB.Open();



Console.WriteLine(oleDB.State.ToString());






OleDbCommand cmd =
new
OleDbCommand();



// Nouveau



String mySql =
"Insert into [GP] ([Version]) Values ([@Version])";


cmd.Parameters.Add(
"@Version",
OleDbType.VarChar, 50,
"Version").Value =
"1.0";



Console.WriteLine(mySql);


cmd.Connection = oleDB;


cmd.CommandText = mySql;


cmd.ExecuteNonQuery();



if (oleDB.Provider ==
"MySQLProv")


{



// MySql


mySql =
"SELECT LAST_INSERT_ID() AS ID FROM [GP]";


}



else


{



// Access et


mySql =
"SELECT @@IDENTITY AS ID";


}


cmd =
new
OleDbCommand(mySql, oleDB);



Console.WriteLine(mySql);



// string t = cmd.ExecuteScalar().ToString();



DataSet ds =
new
DataSet();



OleDbDataAdapter OleDbData =
new
OleDbDataAdapter();


OleDbData.SelectCommand = cmd;


OleDbData.Fill(ds,
"NewFAQ");



object intFAQID = ds.Tables[
"NewFAQ"].Rows[0][
"ID"];



Console.WriteLine(intFAQID.ToString());


oleDB.Close();

1 réponse

zenzob00 Messages postés 3 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 16 mai 2008
16 mai 2008 à 11:38
Hello,

Je ne peu répondre pour MySQL, mais sous SQL ou Access, le type retourné en Identity est uniquement numérique.

Si tu veux récupérer un GUID, il te faut ajouter une colonne intéger auto-incrémental de type int et refaire un select sur cette base.

Exemple:

SELECT MyGUID as ID From [GP] Where intID = @@IDENTITY
0
Rejoignez-nous