webForumDet fria alternativet

Ta reda på ID

ASP

6 svar · 171 visningar · startad av nisslass

Medlem sedan nov. 2001348 inlägg
Frågan#1

Tjenna!

När jag skriver till databasen finns ett autonumber, här kallat ID.

SQLStmt = "INSERT INTO Vykort"

Hur tar jag snabbt reda på vilket id den nya posten får?

Tacksam för svar, har kört fast lite.

------------------
-Nicke-

Medlem sedan dec. 200012 464 inlägg
#2

Det beror på vilken databashanterare du använder.
sql server Access 2000 (Jet 4.0)

sql = "select @@identity"
set rs = connect.execute(sql)
value = rs(0)

red: du kan bara få fram det värde den har fått efter insert, aldrig det värde den kommer att få.

Mysql

sql = "select last_insert_id()"
set rs = connect.execute(sql)
value = rs(0)

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 04 dec 2001]

Medlem sedan nov. 2001348 inlägg
#3

Access 2000.
Om flera personer råkar lägga in poster samtidigt då?

------------------
-Nicke-
nSoft.nu

Medlem sedan nov. 2001348 inlägg
#4

Kör så här för tillfället:

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=vykort.mdb"
SQLStmt = "INSERT INTO Vykort"
SQLStmt = SQLStmt & "(toemail, toname, fromname, fromemail, bildid, passwd, msg) "
SQLStmt = SQLStmt & "VALUES('" & toemail & "', '" & toname & "', '" & fromname & "', '" & fromemail & "', '" & bildid & "', '" & passwd & "', '" & msg & "'); "

Connection.Execute(SQLStmt)

Connection.Close

Om jag vill lägga in en enkel Response.Write som skriver ut ID't som posten fick, hur gör jag då med andra ord?

------------------
-Nicke-
nSoft.nu

Medlem sedan dec. 200012 464 inlägg
#5

Inget problem, värdet är kopplat till din connection.

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 200012 464 inlägg
#6
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=vykort.mdb"
SQLStmt = "INSERT INTO Vykort"
SQLStmt = SQLStmt & "(toemail, toname, fromname, fromemail, bildid, passwd, msg) "
SQLStmt = SQLStmt & "VALUES('" & toemail & "', '" & toname & "', '" & fromname & "', '" & fromemail & "', '" & bildid & "', '" & passwd & "', '" & msg & "'); "
Connection.Execute(SQLStmt)

set rs = connection.execute("select @@identity")
response.write "ID: " & rs(0)
rs.close
Connection.Close

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 2001348 inlägg
#7

Fungerade utmärkt! Tack för hjälpen!
*skaka hand*

------------------
-Nicke-
nSoft.nu

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