webForumDet fria alternativet

Hur får jag fram det skapade rad ID:t vid sql Insert?

ASP

4 svar · 346 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hur gör man igentligen lämpligen när man vill göra en insert till access och sedan direkt hämta idnumret för just denna insert. Jag har gjort enligt nedan men jag antar att det kan finnas en möjlighet till strul om två användare gör samma sak samtidigt.

'2)	-	CREATE NEW CUSTOMER. INSERT TO DATABASE...
		sql = "INSERT INTO T_customer (customer_name, customer_email, account_id, customer_heartbeat_date)" 
		sql = sql &" values ('" &sCreateThisCustomerName &"'," 
		sql = sql &"'" &sCreateThisEmail &"',"
		sql = sql &"" &sAccountDbId &","
		sql = sql &"#" &now() &"#" 
		sql = sql &")" 
		response.write "<p><li><b>INSERT NEW PERSON :</b> " &sql 
		ObjCon.execute(sql)	
		
'3)	-	GET MAX ID NUMBER...
		sql = "SELECT TOP 1 customer_id, customer_name FROM T_customer ORDER BY customer_id DESC" 
		response.write "<li><b>Max id :</b> " &sql 
		set rs = ObjCon.execute(sql)
		dim varMaxCustomerDbId
		if not rs.eof then
		varMaxCustomerDbId = rs("customer_id")
		varVerifiedCustomerName = rs("customer_name")
		end if

Hur får man lämpligen ut IDnumret på raden som precis skapades? :stud

Medlem sedan juni 200032 967 inlägg
#2

Du har visserligen inte angett vilken dbms du använder (i vanlig ordning), men...

...
...
...
		response.write "<p><li><b>INSERT NEW PERSON :</b> " &sql 
		ObjCon.execute(sql)
		lInsertedID = ObjCon.Execute ("SELECT @@IDENTITY")(0)
Medlem sedan dec. 20051 056 inlägg
#3

Tack anders.

Access 2007 kör jag i detta fall.

Medlem sedan juni 200032 967 inlägg
#4

Då bör mitt exempel fungera.

Medlem sedan dec. 20051 056 inlägg
#5

Visst gör det det! Blev mycket bättre!

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)