Senaste Insert ID

ASP

5 svar · 306 visningar · startad av nanne

Medlem sedan dec. 19991 749 inlägg
Trådstart#1

I PHP & mysql så kan man skriva mysql_insert_id() för att få id nummret på den senaste inlagda posten (när man kört en insert sats strax innan).

Finns det något liknande när man kör asp mot Access?

Medlem sedan mars 20002 836 inlägg
#2

Hello,

visst finns det det:

strSQL ="SELECT MAX(FLD_ID) As LastId FROM TBL_TABLE"

cya,
PatrikB

Medlem sedan dec. 19991 749 inlägg
#3

Okej... jag tänkte mest bara ett enkelt functionsanrop. I PHP skriver man nämligen bara
$senasteid=mysql_insert_id();

Men tack ändå

Medlem sedan dec. 19996 721 inlägg
#4

Nej, det enda sättett är att använda sig av direktuppdatering via recordset:et, dvs. du kan inte få ut värdet om du gör en vanlig INSERT.

rs.addnew
rs("Fornamn")="Gnutt"
rs.update

idnummer=rs("ID")

Ett av mycket få tillfällen där denna teknik är användbar.

Medlem sedan mars 20002 836 inlägg
#5

Hello,

visst går det att använda sig av Max() funktionen i SQL för att kolla "senaste id".

Först får man köra:

........
strSQL = "INSERT INTO TBL_TABLE(FLD_FIELD) VALUES('Some text')"
objConn.Execute(sql)
strSQL = "SELECT MAX(FLD_ID) As LastID FROM TBL_TABLE"
Set objRS = objConn.Execute(strSQL)
intLastID = objRS("LastID")

Set objRS = nothing
Set objConn = nothing
........

Inte helt idiot säker på en site med många samtidiga besökare, men funkar gör det.

cya,
PatrikB

Medlem sedan maj 2000175 inlägg
#6
SELECT MAX(FLD_ID) As LastID FROM TBL_TABLE

fungerar bara bra om id-fältet är en räknare. Annars är det inte säkert att det största id-värdet är för den senast inlagda posten.

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