Synchronisation de requete

bill - 12 sept. 2001 à 09:40
 bill - 13 sept. 2001 à 13:41
Bonjour
Voila mon probleme :
Je doit faire des requetes SQL sur une base les une apres les autres

Comment faier pour attendre que la requete soit fini avant de passez a la suivante ?

Voici mon algo :
1 je fais un insert sur la base
2 je recupere le num auto de l'insert : select @@identity
3 de nouveau, je fais un insert avec le num auto precedent en parametre
4 nouveau select @@identity

le probleme c'est que le premier insert n'est pas fini que les requetes 2 et 3 sont lancés !!

Comment faire ?

Ceci pour mettre à jour 4 tables en cascade
Merci

6 réponses

salut bill,

quel type de base utilises-tu pour faire ta/tes requête(s).
Si c'est une base de données SQL server. il existe une commande sql qui permet lors de ton insert d'obtenir directement le numéro identifiant.

par contre, je ne l'aurai que demain..
à+
0
salut
j'utilise bien SQL server, peut tu m'envoyer ta commande.
Merci.
0
salut bill,

voici les lignes en questions, dis moi si c'est à peu près ce que tu fais...

'********************récupération de l'ID d'un champ (N° compteur)

sql="insert into..."

Set Adors = Server.CreateObject("ADODB.recordset")
set Adors.ActiveConnection = Conn
Adors.CursorType = adOpenKeyset
Adors.Locktype = 3
Adors.open "SET NOCOUNT ON;"&sql&";select @@IDENTITY as ID;set nocount off"
'on récupère l'identifiant
NumID=Adors("ID").value
Adors.Close
set Adors=nothing

bon courage !
0
salut
Oui et non.

je verouille d'abord avec
je fais :

Set mycn = Server.CreateObject("ADODB.Connection")
Set myrst = Server.CreateObject("ADODB.Recordset")
mycn.open ma_chaine_de_connection

application.lock

mycn.begintrans
mycn.execute "insert into ..."
set myrst = mycn.execute("select @@identity")
id = myrst.Fields(0).value
myrst.close
mycn.commitTrans

application.unlock
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hy bill

la ligne de code que je t'ai fourni marche très bien.

essaie, tu n'as plus besoin du commit...

tiens moi au courant, à+
0
Merci pour tout :big)
a+
0
Rejoignez-nous