Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de multi-acces sur SQLSERVER

2 réponses
Avatar
ByB
Bonjour,

Je travaille sur une application de type client-serveur en VBA Access,
et avec une base SQL Server partagée par tous les clients.

Je dois faire un INSERT dans une table, puis récupérer l'ID qui a été
associé aux données que je viens d'insérer.

Je fais donc, après l'INSERT, un SELECT MAX ID FROM LATABLE pour
récupérer l'id. Le problème est que, la base étant partagée, si un
autre client a fait une insertion au même moment, je risque de
récupérer l'id de l'élément inséré par l'autre client et pas le mien.

Y a t-il un moyen de récupérer directement cet ID (lors de l'INSERT ?)
. Et si non, comment puis-je locker puis délocker la table pour pouvoir
faire mon INSERT suivi de mon SELECT en toute tranquillité ? Et quelles
sont les précautins à prendre ?

Merci de vos conseils.

--
Il y a un seul cas où il est convenable d'aborder une femme laide.
C'est pour lui demander si elle ne connaît pas l'adresse d'une jolie
femme.
[Pierre Desproges]

2 réponses

Avatar
Gilles TOURREAU
Le Sun, 17 Jun 2007 05:34:11 +0200, ByB a écrit:

Bonjour,

Je travaille sur une application de type client-serveur en VBA Access,
et avec une base SQL Server partagée par tous les clients.

Je dois faire un INSERT dans une table, puis récupérer l'ID qui a été
associé aux données que je viens d'insérer.

Je fais donc, après l'INSERT, un SELECT MAX ID FROM LATABLE pour
récupérer l'id. Le problème est que, la base étant partagée, si un autre
client a fait une insertion au même moment, je risque de récupérer l'id
de l'élément inséré par l'autre client et pas le mien.

Y a t-il un moyen de récupérer directement cet ID (lors de l'INSERT ?) .
Et si non, comment puis-je locker puis délocker la table pour pouvoir
faire mon INSERT suivi de mon SELECT en toute tranquillité ? Et quelles
sont les précautins à prendre ?

Merci de vos conseils.




SELECT SCOPE_IDENTITY();

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
ByB
J'ai envie de hurler à la face du monde que Gilles TOURREAU a affirmé
le 17/06/2007 que
Le Sun, 17 Jun 2007 05:34:11 +0200, ByB a écrit:



Bonjour,

Je travaille sur une application de type client-serveur en VBA Access, et
avec une base SQL Server partagée par tous les clients.

Je dois faire un INSERT dans une table, puis récupérer l'ID qui a été
associé aux données que je viens d'insérer.

Je fais donc, après l'INSERT, un SELECT MAX ID FROM LATABLE pour récupérer
l'id. Le problème est que, la base étant partagée, si un autre client a
fait une insertion au même moment, je risque de récupérer l'id de l'élément
inséré par l'autre client et pas le mien.

Y a t-il un moyen de récupérer directement cet ID (lors de l'INSERT ?) . Et
si non, comment puis-je locker puis délocker la table pour pouvoir faire
mon INSERT suivi de mon SELECT en toute tranquillité ? Et quelles sont les
précautins à prendre ?

Merci de vos conseils.






SELECT SCOPE_IDENTITY();



Cordialement



Merci.

--
Quelle que soit la dualité de la situation de ce début de siècle, il
serait bon d'examiner la majorité des issues s'offrant à nous.