Just nu i M3-nätverket
Jump to content

Plocka ut sista lagrade postens id nr..


peter.l

Recommended Posts

Hej..

 

Någon som skulle kunna hjälpa mig med följande, skulle behöva veta villket ID som den sistaposten i databasen blev tilldelad och lagra detta i en variabel exempelvis.

 

alltså typ så här:

<%

Dim IdNR

IdNr = " sista lagrade postens IdNr "

%>

 

nått förslag??

 

mvh Peter

-----Det blir aldrig som man tänkt sig----

Link to comment
Share on other sites

Kan du inte sortera databasen efter ID - fast i fallande ordning. Därefter ta den första posten där.

Skulle kunna tänka mig följande:

Test = "SELECT * FROM databasen ORDER BY ID DESC"
RecSet.Open Test, Connect, adOpenStatic, adLockOptimistic
IdNr = RecSet("ID")

Det borde funka - har inte testat.

Lycka till!

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Test = "SELECT * FROM databasen ORDER BY ID DESC"

Då plockar han väl ALLT från databasen, för att sedan ur detta ta fram senaste ID. Vilket inte låter bra i mina öron.

 

Det borde väl fungera med:

SELECT id FROM tabell ORDER BY id desc LIMIT 0, 1

 

Men ändå är detta inte alls en säker metod, eftersom man får det sista ID och inte det aktuella. Har man många skrivningar till databasen kan det hinna komma flera INSERTs, vilket då gör att man får fel ID.

 

Har för mig att man i vissa databaser genom ett speciellt "kommando" kan begära tillbaka det aktuella ID-et och inte det sista.

 

Jag kommer tyvärr inte ihåg hur detta ser ut. Någon annan som kan hjälpa till?

 

Det skulle också vara bra om peter.l specifierade vad för DB han använder.

 

Almir - ...

____________________________________________________________

-Läser Programmet för Informatik med Systemvetenskap på MDH, Västerås.-

 

 

[inlägget ändrat 2002-09-30 22:23:42 av TicoRoman (Almir)]

Link to comment
Share on other sites

Det räcker faktiskt med

 

SELECT @@IDENTITY

 

och det fungerar bra i Access2000 med.

 

- M

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Link to comment
Share on other sites

www.essential.se

Gäller detta alltså det ID som en post får efter att man har kört en INSERT INTO sats?

Det skulle ju vara helt fantastiskt om det är så =)

 

Link to comment
Share on other sites

Provade med följande utan att få det att funka, nått jag missat eller har jag fattat helt fel hur det skulle användas, kör ACCESS 2000..

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "Bestallningar"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT @@IDENTITY FROM Bestallare "

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

 

<%= RecSet("ID") %>

 

<% RecSet.Close

Connect.Close

%>

-----Det blir aldrig som man tänkt sig----

 

Link to comment
Share on other sites

Magnus Gladh

Nja

 

SELECT @@IDENTITY använder du för att plocka fram en post idnummer som man precis har lagt in (typ sista posten)

 

Men om du på din sida alltid visa vilken som är den sista posten i ett forum exemple så måste du sortera på datum eller ännu hellre id nummert.

 

SELECT TOP 1 * FROM [TABELLENS_NAMNE] ORDER BY [iD_KOLUMNENS_NAMN] DESC

 

Det kommer att ge dig posten som har högst IDnummer.

 

- M

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Link to comment
Share on other sites

 

@@identity har bara ett värde efter insert, och så skall det inte vara något "from bestallare" med

 

<% Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "Bestallningar"

connect.execute "insert into betstallare ... "

set recset = connect.execute ("select @@identity")

response.write recset(0)

RecSet.Close

Connect.Close

%>

 

 

 

Link to comment
Share on other sites

Erik Junesjö
@@identity har bara ett värde efter insert, och så skall det inte vara något "from bestallare" med

Naturligtvis rätt, gick lite snabbt där.

/Erik

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...