Avatar billede swamboo Seniormester
26. august 2003 - 19:11 Der er 8 kommentarer og
1 løsning

Hvad er ID på netop oprettede post??

Hej - Jeg er ny i asp, så jeg flapper lidt rundt her i starten.

Når man via autonummerering i sin database opretter en ny post via INSERT INTO komandoen, hvordan ved man så hvilket ID den har fået - er der en let måde at gøre det på, eller...???

På forhånd tak!
Frank
Avatar billede eagleeye Praktikant
26. august 2003 - 19:15 #1
Det kommer an på hvilken databse du bruger?
Avatar billede swamboo Seniormester
26. august 2003 - 19:16 #2
Sorry - selvfølgelig betyder det noget...

  Set conntemp = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("test.mdb") & "; UID=Administrator; PWD="
conntemp.open DSN


Det er hvad du søger, ikk...
Avatar billede eagleeye Praktikant
26. august 2003 - 19:18 #3
Avatar billede eagleeye Praktikant
26. august 2003 - 19:19 #4
Det bedste ville være at få dette til at virke:

Conn.Open "Provider=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("somedir\somedb.mdb"

SQL = "INSERT INTO someTable (fld1, fld2) VALUES(123,'xyz');"
conn.Execute SQL

Set RS = Conn.Execute( "SELECT @@IDENTITY" )
idOfNewlyAddedRecord = RS(0)
RS.Close
response.write idOfNewlyAddedRecord
Avatar billede eagleeye Praktikant
26. august 2003 - 19:20 #5
Gvier det  0  hver gang så brug dette:

Conn.Open "Provider=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("somedir\somedb.mdb")

RS.Open "SELECT * FROM someTable", Conn,1,3
RS.AddNew
RS("field1") = "noget"
RS("field2") = "noget andet"
...
RS("fieldN") = valueN
RS.Update
idOfAddedRecord = RS("nameOfAutonumberField")

Response.write idOfAddedRecord
Avatar billede netro Nybegynder
26. august 2003 - 19:25 #6
Avatar billede swamboo Seniormester
26. august 2003 - 22:05 #7
Tak for hjælpen - det virker bare ikke endnu - det kan måske skyldes at jeg sætter det ind det forkerte sted!?!

Her er hele min kode - den skriver hele tiden: Et objekt er obligatorisk: ''    -  det er linien hvor select @@identity står.


<%

  'Åbn databasen
  Set conntemp = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("test.mdb") & "; UID=Administrator; PWD="
conntemp.open DSN

strDato = year(now) & "-" & month(now) & "-" & day(now)
strtid =  hour(now) & ":" & minute(now)




      SQL = "INSERT INTO tabel1 (ip,dato,tid) VALUES ('" & Request.ServerVariables("REMOTE_ADDR") & "', '"& strdato & "' , '"& strtid & "')"
      conntemp.execute(sql)

SQL = Conn.Execute("Select @@Identity As NytID From Tabel")
Set rs = Conn.Execute(SQL)


Response.Write rs("NytID")


%>
Avatar billede eagleeye Praktikant
26. august 2003 - 22:10 #8
det er nogle småting galt forkert Connection obejdt i sidste linje og det skal være samme tabel navn i de to SQL sætninger .
Prøv at rette din kode til dette:


<%

  'Åbn databasen
  Set conntemp = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("test.mdb") & "; UID=Administrator; PWD="
conntemp.open DSN

strDato = year(now) & "-" & month(now) & "-" & day(now)
strtid =  hour(now) & ":" & minute(now)


    SQL = "INSERT INTO tabel1 (ip,dato,tid) VALUES ('" & Request.ServerVariables("REMOTE_ADDR") & "', '"& strdato & "' , '"& strtid & "')"
    conntemp.execute(sql)

SQL = "Select @@Identity As NytID From tabel1"
Set rs = conntemp.Execute(SQL)


Response.Write rs("NytID")


%>
Avatar billede swamboo Seniormester
26. august 2003 - 22:18 #9
Det kunne du jo bare have sagt...  ;-)

1000 tak for din store hjælp - det virker - takket være DIG!!

(Også tak til netro for linket, som også er brugbart - men lidt for indviklet til mit stade!!)
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