Avatar billede falslev Nybegynder
20. februar 2004 - 09:27 Der er 7 kommentarer og
1 løsning

FInde ID på den netop gemte record

Jeg er i tvivl om min nuværende løsning er bulletprof og ønsker derfor at høre eksperternes kommentar.

Idag når jeg gemme et recordset og derefter vil finde det ID det har fået tildelt sker det således:

(Gemmer (ID blive autotildelt))
strSQL = "INSERT INTO Kontaktpers (Navn, Email) "
strSQL = strSQL & " VALUES ('" & Navn & "', "
strSQL = strSQL & " '" & Email & "') "
Conn.Execute(strSQL)


(Finder det tildelte ID)
SQLstmt = "SELECT LAST_INSERT_ID() AS LastID FROM Kontaktpers "
Set RS = Conn.Execute(SQLstmt)
  NewID = RS("LastID")
RS.Close
Set RS = Nothing


Er jeg her 100% sikker på at den altid vil finde det rigtige ID som LAST_INSERT_ID()???
Hvis ikke hvad er så løsningen.
Avatar billede erikjacobsen Ekspert
20. februar 2004 - 09:30 #1
Jo, du er *helt* sikker på det virker. Du kan også bruge mysql_insert_id()-funktionen.
Avatar billede erikjacobsen Ekspert
20. februar 2004 - 09:31 #2
Men - hovsa - mit sidste forslag kun i PHP ;))
Avatar billede falslev Nybegynder
20. februar 2004 - 09:35 #3
Men er der ikke en mulighed for at der bliver gemt en anden linie imellem at den gemmer og finde tildelte ID. Her tænker jeg på store systemer med mange brugere og post.
Avatar billede erikjacobsen Ekspert
20. februar 2004 - 09:37 #4
Nej, ikke på denne måde. Din forbindelse (connection) husker den sidste der
er lavet, og da andre opdateringer sker på andre connections, så er det netop
i orden. Du skal blot sørge for ikke at åbne en ny connection inden du spørger.
Avatar billede erikjacobsen Ekspert
20. februar 2004 - 09:37 #5
Skal vi foreslå MySql at omdøbe den til

  LAST_INSERT_ID_ON_THIS_CONNECTION()

?? ;)
Avatar billede falslev Nybegynder
20. februar 2004 - 13:58 #6
Ok super.
Du plejer ikke at ville have point så vidt jeg husker, men vil du har sgu fortjent det så lav et svar :)
Avatar billede erikjacobsen Ekspert
20. februar 2004 - 14:00 #7
Nej tak, ingen værdiløse point til mig ;)
Avatar billede falslev Nybegynder
24. juni 2004 - 09:25 #8
Da ericjacobsen ikke vil have point trods rigtigt svar, laver jeg selv et svar for at lukke.
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
Computerworld tilbyder specialiserede kurser i database-management

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