Avatar billede krogstrup Nybegynder
27. september 2000 - 14:28 Der er 10 kommentarer og
3 løsninger

Fang autonumber ID lige efter indsættelse...

Jeg ved godt at dette spm er blevet stillet tidligere, men jeg kan ikke få svarene til at fungere.

Jeg opretter en ny recordset i min tabel og her genereres et ID i et autonumber felt. Jeg har brug for øjeblikkeligt at kunne se hvilket nummer mit autonumber felt har lavet.

jeg har prøvet med følgende:

<!--#include virtual=\"/includes/asp/createRecordset.inc\"-->
<% strSQL = \"SELECT * FROM layouts\" %>
<!--#include virtual=\"/includes/asp/openWrite.inc\"-->
<% rs.AddNew
rs(\"Name\") = Name
rs.Update
ID = rs(\"ID\") %>
<!--#include virtual=\"/includes/asp/closeRecordset.inc\"-->

Udskriv ID : <%=ID%>


Men når jeg udskriver min ID er den blank !!!

Mit recordset bliver oprettet korrekt i databasen, men jeg kan ikke fange det skide ID !!!?!?!

Hvad gør jeg galt ?
Avatar billede altinet Nybegynder
27. september 2000 - 14:37 #1
En kommentar fra en total ASP newbie:

\"id\" i stedet for \"ID\" ??

:-) Lars
Avatar billede krogstrup Nybegynder
27. september 2000 - 14:41 #2
Beklager Lars, men det hjælper mig desværre ikke meget, da MS Access ikke opfatter feltnavne som case sesitive !
Avatar billede phylox2 Nybegynder
27. september 2000 - 14:46 #3
Du kan lave en

Set RS_TopID = Conn.Execute(\"SELECT TOP 1 ID FROM layouts\")

MEN! Det kræver lige, at der ikke bliver tilføjet noget i mellemtiden ...

Response.Write RS_TopID(\"ID\")

Udskriver variablen/IDet!
Avatar billede hornshoj Nybegynder
27. september 2000 - 14:46 #4
Du skal åbne dit recordset med den cursortype der hedder adUseClient.
Avatar billede der Nybegynder
27. september 2000 - 14:47 #5
conn.begintrans

strSQL = \"SELECT * FROM layouts\"
rs.AddNew
rs(\"Name\") = Name
rs.Update

strsql = \"select * from layouts order by ID DESC\"

rs = conn.execute(strsql)

ID = rs(\"ID\")

response.write(ID)

conn.committrans

På denne måde for du den sidste record du har indsat ?
Avatar billede hornshoj Nybegynder
27. september 2000 - 14:48 #6
Værdien for adUseClient er 2.

F.eks.
Dim oRS
Set oRS=Server.CreateObject(\"ADODB.Recordset\")
oRS.CursorType = adUseClient
oRS.Open \"tabelnavn\", oConn, adOpenKeySet, adLockOptimistic, adCmdTable

oRS.AddNew
oRS(\"Felt\") = \"Hej\"
oRS.Update
intID = oRS(\"ID\")
Avatar billede krogstrup Nybegynder
27. september 2000 - 14:52 #7
hornshoj >>>

Følgende er hentet fra \'adovbs.inc\':

\'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3


Jeg bruger følgende sætning til at åbne recordsettet:

<% rs.Open strSQL, strDSN, 2, 3 %>

Er det så mit 2-tal jeg skal ændre til 3 ?
Avatar billede krogstrup Nybegynder
27. september 2000 - 14:53 #8
hmmm, vi sad vist og skrev samtidigt...
Avatar billede hornshoj Nybegynder
27. september 2000 - 14:57 #9
Ups byt mit 2 med 3 det er meget bedre!! HEHE!
Avatar billede krogstrup Nybegynder
27. september 2000 - 14:59 #10
nu bruger jeg følgende som IKKE virker:

<% Set rs = Server.CreateObject(\"ADODB.RecordSet\") %>
<% strSQL = \"SELECT * FROM layouts\" %>
<% rs.CursorType = 3 %>
<% rs.Open strSQL, strDSN, 2, 3 %>
<% rs.AddNew %>
<% rs(\"whatEver\") = whatEver %>
<% rs.Update %>
<% ID = rs(\"ID\") %>
<% rs.Close %>

Hvad er forkert ?
Avatar billede phylox2 Nybegynder
27. september 2000 - 15:14 #11
I hvert fald måden du skriver det på!

<%
Set rs = Server.CreateObject(\"ADODB.RecordSet\") 
strSQL = \"SELECT * FROM layouts\"
rs.CursorType = 3
rs.Open strSQL, strDSN, 2, 3
rs.AddNew
rs(\"whatEver\") = whatEver
rs.Update
ID = rs(\"ID\")
rs.Close
%>


Avatar billede erikjacobsen Ekspert
27. september 2000 - 15:32 #12
Må jeg tillade mig at referere til http://www.1script.com/asp0001.html
Avatar billede krogstrup Nybegynder
27. september 2000 - 15:48 #13
YES - Tusind tak alle for jeres svar...

Her er løsningen: rs.Open strSQL, strDSN, 1, 3

/David
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