lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008
-
2 juin 2008 à 09:29
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024
-
9 mai 2014 à 12:49
Bonjour à tous
voila j'essaye depuis hier après midi de récupérer la clé primaire d'un formview après insertion
dans mon formview page 1.aspx j'ai une clé se nommant "Id_P" en compteur de1 à 1 (je travaille sous SQL 2000)
et j'aimerais récupérer cette valeur dans un autre champ se situant dans une autre page2.aspx (car je travaille sur des pages web)
dans la page1 la clé est cachée mais lors de l'insertion vers ma base de données elle s'est incrémentée
J'espere avoir été assez explicite dans mon probleme, n'hesitez pas pour d'eventuelle question
Merci
lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008 2 juin 2008 à 13:45
Personne a une idée ca m'embete d'est super important j'ai lu un fichier sur comment récuperer la clé primaire de Magali mais je n'y arrive pas
1. 'Pour récupérer l'identifiant d'un nouvel enregistrement et être sûr que ce soit bien l' enregistrement qui nous interesse, rien de mieux qu'une procédure stockée. <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
2.
3.
4. 'Nous vous proposons ici une méthode simple qui ne nécessite pas de de==procédure stockée et qui évite de faire un select avec l'ensemble des données que l'on vient d'insérer dans la base de données.
5.
6.
7. 'Cette méthode utilise @@IDENTITY et consiste à exécuter la requête INSERT suivie d'une requête SELECT @@IDENTITY dans le même recordset.
8.
9.
10. 'Voici la requête :
11.
12. "INSERT INTO Table ( Champ(s) ) VALUES ( valeur(s) ); SELECT @@IDENTITY as ID"
13.
14.
15. 'Vous trouverez ci-dessous un exemple en ASP utilisant la récupération de l'ID :
16.
17.
18. 'Dans cet exemple, on insere la valeur "test" dans le champ Test de <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="la Table Test">la Table Test</st1:personname> ayant comme clé primaire le champ ID.
19.
20.
21.
22. SQL="INSERT INTO Test (Test) VALUES ('test'); SELECT @@IDENTITY as ID"
23.
24. ...
25.
26. Set rs = MyCon.Execute(SQL,,1) '=> les requêtes seront exécutée telle quelles sont données l'une après l'autre
27.
28. Set rs= rs.NextRecordset '=> la données retournée par la deuxième requête (le deuxième recordset) sera l'identifiant
29.
30. ... '=> de l'enregistrement inséré par la première requête.
31.
32. ID=rs("ID")
33.
34.
35. '-------------------------------------
36.
37. la commande Execute a trois arguments parfois optionnel :
38.
39. Execute(SQL, Paramètres, Options )
40.
41. '=> SQL : la variable contenant les requêtes à exécuter
lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008 2 juin 2008 à 16:23
Merci a tous les 2 pour vos réponses
"Nhervagault" ce n'est pas un micmac je suis en train de créer des formulaires sur des pages web
je ne vois pas ou je dois mettre ton code (sorry) peux tu m'en dire un petit pêu plus? car en code je commence seulement
(j'avais deja vu ce code mais ne sachant ou le mettre je me suis permise de vous contacter)
"gabj" sous sqlServer 2000 j'ai appris que ce n'etait pas le meilleur choix pour une clé primaire non?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_gabj
Messages postés58Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention 5 août 2009 2 juin 2008 à 17:27
Tous dépends de ce que tu estimes être un meilleur choix. Tu peux générer ton GUID à partir de ton code C# puis le réutiliser comme identifiant de ton entité en cours. Effectivement le GUID est plutot lourd car il représente une données SQL Server dès plus grandes (ce qui le rend plus lent que les int pour la recherche sur un champs indéxé). Mais si tu as besoin de consolider plusieurs tables à partir d'un datawarehouse, il est complètement adéquat. Les GUID sont également utilisés nativement pour identifier les lignes d'une table lors de réplications.
- L'utilisation de la procédure stockée « SCOPE_IDENTITY »
- L'utilisation de la procédure stockée « IDENT_CURRENT »
- et finalement l'utilisation de la fonction « @@IDENTITY »
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 9 mai 2014 à 12:49
@PilotDev.
Bonjour,
Même si ta réponse peu ( peut-être ) intéresser du monde... la question date de 2008 .... et j'espère pour le demandeur qu'il a trouvé une solution à son souci depuis le temps...
Bref.. fin des fouilles archéologiques.. fermeture du sujet.