webForumDet fria alternativet

Få fram ett ID

ASP

12 svar · 243 visningar · startad av colione

Medlem sedan juni 20014 421 inlägg
Frågan#1

Jag vill Hämta ut ID:et på d senaste inlägget i databasen hur göt jag??

<% If Request.QueryString("open") = "add2" Then %>

<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\applications\citatdatabas\data\citat.mdb"

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

Radera = "SELECT * FROM citat ORDER BY Citat"
RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic

RecSet.AddNew

RecSet("Citat") = replace(Request.Form("citat"),"""","") 

RecSet.Update
VisaCitat = RecSet("Citat")
VisaID = RecSet("ID")
RecSet.Close
Connect.Close %\>

Detta Citatet är inlagt:<p>
<b><%=VisaCitat%></b>  <a href="default.asp?open=yes&what=edit&delID=<%=ID%>">Ändra</a><p>
<input type="Submit" value=Tillbaka onclick="skicka();" style="font-family: verdana, arial; font-size: 8pt"><input type="button" value="Lägg till ett till" onclick="skicka1();" style="font-family: verdana, arial; font-size: 8pt">
<%End If%>

------------------
Check = replace(Request.User("Chair"),"Syrran","Jag")
Tabort_syrran = Check

Medlem sedan juni 20019 024 inlägg
#2
SELECT TOP 1 * FROM citat ORDER BY Citat

Borde funka.

------------------
Peter D

Medlem sedan dec. 200012 464 inlägg
#3
<% If Request.QueryString("open") = "add2" Then %>

<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\applications\citatdatabas\data\citat.mdb" 

VisaCitat = Request.form("Citat")"

sql = "insert into citat(citat) values ('" & replace(VisaCitat,"'","''") & "')"
connect.execute sql,,128

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

Visaid = rs(0)
RecSet.Close
Connect.Close

Select @@identity fungerar dock bara med Access 2000

red:
pace

Ditt exempel fungerar inte, det tar fram id för det citat som liger först i alfabetisk ordning
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 25 aug 2001]

Medlem sedan juni 20019 024 inlägg
#4

Just det ja, hämta ut ID och visa sista id:t är två olika saker :r

order by id desc skulle det förresten vara :r

[r] Jo, upptäckte det LarsG! :)

------------------
Peter D

[Redigerat av Pace den 25 aug 2001]

Medlem sedan feb. 20012 412 inlägg
#5

Hej!

En följdfråga:

Finns det något som ersätter @@identity i andra databaser, typ MySQL, SQL server, oracle, db2 mfl?

mvh Jörgen

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan dec. 200012 464 inlägg
#6

@@identity finns i

SQL server
Sybase
Access 2000
Mysql (Dom har även andra synonyma funktioner för detta)

Oracle och Postgres mfl använder sekvenser för att skapa unika nycklar.

DB2 vet jag inte hur dom gör

SQL99 (den gällande standarden) innehåller ingen funktion för detta.

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

[Redigerat av LarsG den 25 aug 2001]

Medlem sedan dec. 200012 464 inlägg
#7

Blev lite nyfiken på DB2.

Dom har stöd för att man när man skapar en tabell definierar att en kolumn får automatiskt genererade värden vid insert. Funktionellt är det ungefär samma som sql server (DB2 har lite mer varianter) mfl men syntaxen skiljer sig något.

I deras online-dokumentation fanns det ingen beskrivning av någon speciell funktion för att plocka fram det senast skapade värdet vilket gör funktionaliteten mindre användbar.

Någon DB2-kunnig (sgtpepper?) som har ytterligare info?

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

Medlem sedan juni 20014 421 inlägg
#8

Ok...tack så mye allihopa!!

------------------
Check = replace(Request.User("Chair"),"Syrran","Jag")
Tabort_syrran = Check

Medlem sedan feb. 20012 412 inlägg
#9

Hej och tack LarsG! :)

Mysql (Dom har även andra synonyma funktioner för detta)

Du har inget namn på dessa så man vet var i manualen man ska börja leta?

mvh Jörgen

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan dec. 200012 464 inlägg
#10

last_insert_id()
http://www.mysql.com/doc/G/e/Getting_unique_ID.html

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

Medlem sedan feb. 20012 412 inlägg
#11

Thanx, du e en klippa LarsG :)

------------------
// Fin signatur
Jorgen hp = new Jorgen(this);

Medlem sedan juni 20014 421 inlägg
#12

Finns d nåt sätt man kan göra d på utan en sql-string??

------------------
Check = replace(Request.User("Chair"),"Syrran","Jag")
Tabort_syrran = Check

Medlem sedan jan. 200152 inlägg
#13

Om ni kör med dreamveawer så finns det en jättebra extension till @@identity

Tomas

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)