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

ASP

4 svar · 357 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Trådstart#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!

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)