Avatar billede jimmidreng Nybegynder
19. januar 2001 - 00:01 Der er 8 kommentarer og
1 løsning

Udtrækning af ID

Jeg laver en AddNew på et recordset, sætter et par fields og afslutter med en Update.
Herefter prøver jeg at trække ID ud i en variabel, men dette resultere i en tom variabel.
Kan jeg først trække det automatisk genererede ID ud når jeg har lukket mit recordset?
Burde ID ikke blive sat ved Update?

Elsempel:

Rs.AddNew
Rs.Fields(\"Hej\") = \"Dav\"
Rs.Update

NyId = Rs.Fields(\"ID\")

NyId returnere \"\"

Ps. Det hjælper ikke engang at lave en:
Rs.MoveLast
Rs.MoveNext
Avatar billede tdaugaard Nybegynder
19. januar 2001 - 00:03 #1
ID bliver sat FØR Update da du tilføjer en ny.

Rs.AddNew
Rs.Fields(\"Hej\") = \"Dav\"

NyId = Rs.Fields(\"ID\")

Rs.Update

Avatar billede jimmidreng Nybegynder
19. januar 2001 - 00:08 #2
Virker stadig ikke: NyId = Rs.Fields(\"ID\") før update fungere ikke!
Det virker som om at jeg er nødt til at lukke mit recordset, før jeg kan trække værdien!
Avatar billede tdaugaard Nybegynder
19. januar 2001 - 00:10 #3
Faktisk behøver du ikke .Fields..

Rs.AddNew
Rs(\"Hej\") = \"Dav\"

NyId = Rs(\"ID\")

Rs.Update

er nok, men jeg kan da ikke forstå hvorfor det ikke skulle virker .. det gør det da hos mig (jeg bruger selv samme metode i noget jeg selv har lavet)
Avatar billede jimmidreng Nybegynder
19. januar 2001 - 00:13 #4
Hmm det fatter jeg ikke en bjælde af, den returnere ikke en daddel!

Jeg bruger altid .Fields så processere den hurtigere da den ikke skal læse hele registret igennem, ligesom Request.Form og Request.Querystring.

Men det nytter ikke, hvorfor pokker mon ikke den returnere noget?
Avatar billede tdaugaard Nybegynder
19. januar 2001 - 00:17 #5
Nej, nej .. den skal ikke onget som helst igennem. Grunden til at du kan bruge:

Rs er fordi at Rs\' standard egenskab er Fields. Derfor er det lige vidt om du skriver Rs(\"noget\") eller Rs.Fields(\"noget\"). Det samme med Request.

Ligemeget om det er data overført fra en form eller direkte fra adresselinien går det lige stærkt om du bruger .Form ell. .QueryString da alle data bliver oprettet som variabler først.
Avatar billede tdaugaard Nybegynder
19. januar 2001 - 00:18 #6
men jeg fatter det godtnok ikke
Avatar billede jimmidreng Nybegynder
19. januar 2001 - 00:23 #7
Skriver du bare:
Request(\"hej\") aner parseren ikke om data er fra en form eller fra Querystrengen, derfor prøver den først Request.Form(\"hej\") derfter Request.Querystring(\"hej\") og så fremdeles.

Hastigheds forringelsen er ikke stor, men det giver også en bedre kode forståelse for den næste der skal læse koden.

Anyway, jeg tror jeg melder pas på denne her, og laver en lille skod finte:

Rs.Close
Set Rs = Nothing
Set RS = Conn.Execute(\"Select Top 1 * From Tabel order by ID Desc\")
NyId = RS(\"ID\")

Det er noget skidt med så mange kald, men det virker!

/Jimmi
Avatar billede erikjacobsen Ekspert
19. januar 2001 - 20:08 #8
Jeg har kigget på problemet på
http://www.1script.com/asp0001.html
- omend jeg er blevet lidt klogere siden den blev skrevet.
Prøv at se om den hjælper dig.
Avatar billede jimmidreng Nybegynder
19. januar 2001 - 22:24 #9
Det hjalp ikke det store, artiklen beskrev den rigtige fremgangsmåde præcist som jeg gør det, det må være min DB den er gal med, men tak for hjælpen anyway!
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