Avatar billede lizardine Nybegynder
30. marts 2001 - 10:50 Der er 11 kommentarer og
1 løsning

Get unikt ID på en ny record i en tabel

Er der nogen der har en idé til hvordan man kan få fat på det unikke ID på et recordset som man lige har sat ind i sin tabel?

F.eks. Man indsæter først et recordsæt i en tabel også skal man bruge ID\'et på denne record fordi denne skal indsættes i en anden tabel lige efter.
Avatar billede sone Nybegynder
30. marts 2001 - 10:52 #1
Hvis der er autonummerering på, så kan du lave:

  SELECT MAX(id) FROM tabel

da autonumre stiger hele tiden.
Avatar billede lizardine Nybegynder
30. marts 2001 - 10:53 #2
Det kunne man.... men man får nødvendigvis ikke ID\'et på den record man lige har indsat.
Avatar billede sone Nybegynder
30. marts 2001 - 10:54 #3
Uden om INSERT og den efterfølgende SELECT sætter du:

Application.lock
  \' SQL\'er
Application.Unlock

så kan koden ikke afbrudes af andre klienter.
Avatar billede slash Nybegynder
30. marts 2001 - 10:55 #4
kan dette bruges:

strSQL = \"Set Nocount on \"
strSQL = strSQL + \" Insert Topics (TopicName, SortOrder) VALUES (\'X\', -1) \"
strSQL = strSQL + \" select IdentityInsert=@@identity\"
strSQL = strSQL + \" set nocount off\"

Set objRS = objConn.Execute(strSQL)

Response.Write objRS(\"IdentityInsert\")
Avatar billede jimmidreng Nybegynder
30. marts 2001 - 10:55 #5
Åbn dit recorset, med pointere: 1,3
Avatar billede kasseper Nybegynder
30. marts 2001 - 10:56 #6
Når det nu er så vigtigt, så kan du bruge dato/tid som tidsstempel, som jo så vil være et unikt ID, derefter kan du finde den højeste tid som sone siger, så er du da sikker på at du får den sidste nye....Men sone\'s burde da også virke !!!
Avatar billede lizardine Nybegynder
30. marts 2001 - 10:57 #7
Greatest.... mange tak
Avatar billede ortrak Nybegynder
30. marts 2001 - 11:17 #8
der er kun to acceptable løsninger. Og det er, at åbne recordsettet med en updaterbar cursortype, så man kan hente id\'et umiddelbart efter man har kørt Update(). Derudover så er @@identity også brugbar, som slash skriver.

Alle andre foreslag er direkte kludderkode.

Sone: Er du på stoffer? Hvorfor vil du lock\'e dit application object?!?


/ortrak
Avatar billede sone Nybegynder
30. marts 2001 - 11:34 #9
For at user2 ikke har adgang til denne del af koden mens user1 har.
Avatar billede ortrak Nybegynder
30. marts 2001 - 11:49 #10
Application.Lock låser Application-object variablerne og ikke hele koden - især ikke en eventuelt databasetransaktion.

/ortrak
Avatar billede sone Nybegynder
30. marts 2001 - 11:55 #11
...det har altid været min opfattelse...
Avatar billede tdaugaard Nybegynder
30. marts 2001 - 23:37 #12
Det er helt korrekt hvad ortrak siger. Application.(Un)Lock låser Application() objektet og ikke hele script eksekveringen.
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