autoincrement et resultset [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 22-05-2003 à 12:07:04
cedricbrun a écrit : Salut ! |
Est-ce que tu fais bien un Update aprés ton Insert ?
Marsh Posté le 22-05-2003 à 12:13:39
ça marche pas, il me dit que ce type de champ peut pas utiliser cette méthode :
texto : "il ne prend pas en charge la mise à jour"
Marsh Posté le 22-05-2003 à 14:05:44
En fait mon problème a l'air un peu différent de ce que je pensais :
Le resultset refuse mon resultset.close après avoir envoyé une requête d'ajout. Apparemment le resultset se ferme lui même lors d'une requete d'ajout, ou encore l'objet Connection ne renvoi pas d'objet resultset valide lorsqu'il s'agit d'une requete d'ajout...je vais creuser par là
Marsh Posté le 22-05-2003 à 14:19:42
cedricbrun a écrit : ça marche pas, il me dit que ce type de champ peut pas utiliser cette méthode : |
Il faut pour cela que ta commande soit en mode "Optimiste"
(je ne sais pas trop comment a marche pour une requetre manuelle car moi j'utilise des dataencvironnement et des command. Cela dit, tu dois trouver ca dans l'aide)
Tu pourra ainsi inserer dans ta table avec le Update et recuperer ton index autoincrementé !
Marsh Posté le 22-05-2003 à 14:29:45
après ton insert tu fais directement un
Code :
|
tu auras le dernier ID que tu as inséré dans ta DB.
Marsh Posté le 22-05-2003 à 14:48:03
drasche a écrit : après ton insert tu fais directement un
|
Oui mais cela ne pose-t-il pas de pb quand à la concurrence d'accés ?
ex : deux utilisateur entre les données quasi au même moment, les deux ajouts se font avant le select @@identity de chacun des utilisateur, puis le select @@identity renvoi le dernier numéro aux deux utilisateurs non ?
Dans ce cas c'est caca, risque de bug non négligeable.
Marsh Posté le 22-05-2003 à 15:02:34
Ca ne pose aucun problème si ça se passe sur la même connexion, et il n'y a pas interférence sur des connexions concurrentes. La méthode est safe et il me semble que c'est un standard SQL.
Marsh Posté le 22-05-2003 à 15:31:44
tu peux nous montrer un peu de ton code, parce que chez moi ça marche.
Marsh Posté le 22-05-2003 à 15:41:11
drasche a écrit : tu peux nous montrer un peu de ton code, parce que chez moi ça marche. |
Yep j'ai été trop vite...je refais un essai autrement.
Marsh Posté le 22-05-2003 à 16:22:56
C'est bon ça marche enfin
Merci beaucoup, c'est quand même beaucoup plus propre ainsi !
Marsh Posté le 22-05-2003 à 16:32:37
Quelle perspicacité !
Serait-tu le dane de l'iut de nantes par hasard ?
Marsh Posté le 22-05-2003 à 16:34:30
Quel est ton pb, que cherche tu ? (du VB ?)
Tu dois avoir un super sujet de stage toi aussi
Marsh Posté le 22-05-2003 à 16:36:04
va sur le sujet que j'ai mis sur le forum
tout est expliqué
requête SQL et passage des paramètres associés
Marsh Posté le 22-05-2003 à 12:03:11
Salut !
Bon, j'utilise une base mysql avec un programme VB.
Je voudrais faire un insert dedans, avec la création automatique d'un identifiant (donc en autoincrement).
La requête d'insertion marche, je récupère un resultset comme il faut mais je ne sais pas comment récupérer la clé qui a été calculée.
Lorsque je fait resultset.fields("laclé" ) il me jette en me disant que ce champ ne fait pas partie du resultset.
Bien sûr si je fais une requête de selection ensuite ça peut marcher mais c'est très sale vu que je pourrais pas faire cette requete sur la clef et que par conséquent, rien ne me garanti que je n'aurai qu'un enregistrement en retour.
Vous me suivez ?
Vous avez une idée ?