Avatar billede obhat Nybegynder
04. juli 2005 - 21:35 Der er 16 kommentarer og
1 løsning

Unik ID med ASP

Den her genererer et unik ID i en SQL database:
MD5('" & Now() & "')

Men det kan ikke bruges til en Access, hvorfor egenlig ikke?
Hvad skal jeg gøre for at genererer et unik ID i en Access database?
Avatar billede nielle Nybegynder
04. juli 2005 - 21:41 #1
MD5('" & Now() & "') er ikke garanteret at give dig et unikt ID. Tværtimod! Omend, der nu nok går længe før at du får en dublet.

Hvis du vvil have et unikt id, hvad er der så i vejen med at have et felt som autoincrementer.
Avatar billede obhat Nybegynder
04. juli 2005 - 21:48 #2
At autoincrementer sætter nogen gange et - foran, et negativt tal, kan det måske undgås?
Avatar billede nielle Nybegynder
04. juli 2005 - 22:07 #3
Du skal gøre talfeltet så stort som muligt. Hvis det er et lille talfelt - f.eks. en byte - løber den nemlig "over" når den når 128.
Avatar billede softspot Forsker
04. juli 2005 - 22:32 #4
Man kan lave sig en funktion der genererer et GUID (og det burde være ret entydigt ;)) og så benytte det som ID i databasen:

Function getNewGUID()
  dim tlb
  set tlb = Server.CreateObject("Scriptlet.Typelib")
  dim GUID
  GUID = tlb.Guid
  set tlb = nothing
  getNewGUID = GUID
end function
Avatar billede obhat Nybegynder
04. juli 2005 - 23:12 #5
Når jeg bruger funktionen getNewGUID()
Skal jeg så insert into med " & GUID & " ??
Avatar billede softspot Forsker
04. juli 2005 - 23:20 #6
Ja, f.eks.:

SQL = "INSERT INTO tabel1 (ID, navn) VALUES('" & getNewGUID & "','" & Navnet & "')"

Og så skal ID altså være en streng i databasen (tekst såvidt jeg husker).
Avatar billede obhat Nybegynder
04. juli 2005 - 23:29 #7
Det kan jeg ikke få til at virke :-(
Fortsætter i morgen...
Avatar billede softspot Forsker
04. juli 2005 - 23:39 #8
OK... fortæl mig lidt mere om de symptomer du oplever, evt. hvordan din database ser ud og hvad det er du arbejder med (mere konkret).

Indtil da - sov godt :)
Avatar billede obhat Nybegynder
05. juli 2005 - 10:30 #9
Jeg får ikke nogen fejl i ASP scriptet, redirecter til ok.asp
Det ser sådan ud:

<%

Function ParseDate(strDate)
  ParseDate = Month(strDate) & "-" & Day(strDate) & "-" & Right(Year(strDate),2)
End Function

  Function getNewGUID()
  dim tlb
  set tlb = Server.CreateObject("Scriptlet.Typelib")
  dim GUID
  GUID = tlb.Guid
  set tlb = nothing
  getNewGUID = GUID
end function

Conn.execute "INSERT INTO liste (dato, email, ip, getNewGUID) VALUES (#"&ParseDate(date())&"#, '"&replace(request.form("email"), "'", "''")&"', '" & ipx & "', '" & getNewGUID & "')"

    rs.Close
    Conn.Close
    Set Conn = Nothing
    Set rs = Nothing

response.redirect ("ok.asp")
    %>

Alt virker fint, indtil jeg tilføjer '" & getNewGUID & "' i insert into, så skrives der ingenting ind i databasen
Avatar billede obhat Nybegynder
05. juli 2005 - 11:45 #10
Har også prøvet med denne her:
VarUID = replace(Time(),\":\",\"\") & replace(Date(),\"-\",\"\") & session.sessionID

Men der er åbenbart en fejl i linien? - scriptfejl?
Avatar billede obhat Nybegynder
05. juli 2005 - 12:00 #11
Jeg har netop lavet en response.write getNewGUID

{AE90A2D1-41EE-449D-8AC3-9B397B409740}

Jeg tror problemet er at den sætter {} tegn omkring udtrækket?
Avatar billede softspot Forsker
05. juli 2005 - 13:17 #12
Hvis feltet getNewGUID i databasen er en tekst (hedder det virkelig getNewGUID??), så burde det ikke være noget problem at der er tuborgklammer...

Ang. din scriptfejl, så prøv at undlade alle de backslashes (det er javascript-syntaks (PHP?)). Jeg skulle mene at

replace(Time(),":","")

burde fungere.
Avatar billede obhat Nybegynder
05. juli 2005 - 13:28 #13
Ja det er nøjagtig " & getNewGUID & " jeg får det ikke til at virker, men ellers har jeg fjernet alle \ i varUID og det virker fint, det er desværre bare ikke særlig godt, da UID kun ændre et tal i udtrækket pr. sekund.

Kan det ikke laves smartere? feks. ligesom MD5('" & Now() & "') der genererer dfdsg541545f45fd00DD noget i den stil.
Avatar billede obhat Nybegynder
05. juli 2005 - 13:35 #14
Nej det er faktisk fint nok aligevel, den ændre jo også sessionID - så alt er ok, jeg takker for hjælpen :-)
Avatar billede softspot Forsker
05. juli 2005 - 14:29 #15
Er du så på jagt efter et svar ;)
Avatar billede obhat Nybegynder
05. juli 2005 - 14:37 #16
Ja tak - og her er lidt points..
Avatar billede softspot Forsker
05. juli 2005 - 14:42 #17
Takker for points :)
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