Avatar billede flodhesten Nybegynder
03. august 2007 - 21:22 Der er 6 kommentarer og
2 løsninger

Finde id til tilføjet række

Hej eksperter.

Jeg har følgende kode:

<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM game ", Conn, 1, 3

rs.AddNew
rs("userid") = session("id")
rs("date") = now
rs.Update

rs.Close

Conn.Close
Set Conn = Nothing
%>

Den laver altså en ny række i min tabel i min database og udfylder henhodlsvis feltet userid og date.

Mit problem er, at jeg efter at have tilføjet disse data i min database, skal have viderestillet til denne side:

show.asp?id=5

id-værdien (5) skal naturligvis ændres til det id som min nye række i databasen har fået. Er det på nogen måde muligt?

Det skal siges, at min database er Acces og at jeg har Autonummerering 1,2,3 i mit felt id.

Er det til at forstå, eller skal jeg prøve at uddybe?
Avatar billede flodhesten Nybegynder
03. august 2007 - 21:24 #1
"1,2,3 osv" var bare for at illustrere hvordan systemet fungerer, håber ikke det var til mere forvirring end gavn :P
Avatar billede thesurfer Nybegynder
03. august 2007 - 21:58 #2
Sådan her:

select @@identity from game

Nogen vil sikkert finde det nyeste id-nummer, hvilket er en forkert måde at gøre det på, da andre kan nå at indsætte mellem add og select..
Avatar billede goose Nybegynder
03. august 2007 - 21:59 #3
Følgende burde virke:

<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM game ", Conn, 1, 3

rs.AddNew
rs("userid") = session("id")
rs("date") = now
rs.Update
rs.Close

SQLnew = "SELECT @@IDENTITY as NytID FROM game"
set rsIdentity = conn.execute(SQLnew)
newid = rsIdentity("NytID")
rsIdentity.close
set rsIdentity = nothing


Conn.Close
Set Conn = Nothing

response.redirect "show.asp?id=" & newid
%>

/Goose
Avatar billede goose Nybegynder
03. august 2007 - 22:00 #4
øvv, thesurfer var hurtigere ;o)

/Goose
Avatar billede plx Nybegynder
03. august 2007 - 22:05 #5
IDENTITY er ikke tilknyttet en tabel, så det er vel bare

select @@identity as nytid
Avatar billede thesurfer Nybegynder
03. august 2007 - 22:06 #6
plx> Det lyder logisk nok.
Avatar billede flodhesten Nybegynder
03. august 2007 - 22:20 #7
Tak for svarene.

Jeg må indrømme jeg brugte gooses (uden "FROM game"), selvom thesurfer egentlig var hurtigst med løsningen. Men tror ikke jeg havde forstået det helt uden gooses svar. Men ingen tvivl om, at thesurfer ville uddybe, hvis jeg bad om det... Jeg foreslår en deler mellem jer to? Eller synes I det er uretfærdigt for nogen?

I øvrigt tak til dig plx for din lille rettelse :)
Avatar billede thesurfer Nybegynder
03. august 2007 - 22:43 #8
Så smider jeg da et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester