/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Bedste måde at lave unikke ID'er på
Fra : Peter


Dato : 01-08-02 14:16

Hej

Jeg skal have genereret et unikt ID for brugere.

Jeg har tænkt på at sætte en streng sammen og fjerne mellemrum mv.:

Session_ID
Tidspunkt
Dato
IP

Dette bliver dog et ret langt tal - er der nogen måde, det kan gøres lettere
på?

AutoNumber er ikke god, da jeg ikke kender den før linien er skrevet til DB,
hvilket ikke er hensigtsmæssigt i mit tilfælde.

Hilsen Peter



 
 
Jakob Andersen (01-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 01-08-02 14:41

Peter wrote:
> Dette bliver dog et ret langt tal - er der nogen måde, det kan gøres
> lettere på?

millisekunder siden 1. Januar 1970 00:00:00

--
Jakob Andersen



Peter (01-08-2002)
Kommentar
Fra : Peter


Dato : 01-08-02 14:56

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aibdoj$998$1@sunsite.dk...
> Peter wrote:
> > Dette bliver dog et ret langt tal - er der nogen måde, det kan gøres
> > lettere på?
>
> millisekunder siden 1. Januar 1970 00:00:00

Hmm ja - Timer i kombination med noget, der er unikt for brugeren - eks.
SessionID burde kunne gøre det.

Kan man tænke sig en server så hurtig, at den udfører instruktionerne i
ASP-koden hurtigere end 1 millisekund?

Hvis jeg skal have to unikke ID og baserer det på Timer kan jeg vel i
teorien få to ens tal?

Hilsen Peter



Jakob Andersen (01-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 01-08-02 15:01

Peter wrote:
> Hvis jeg skal have to unikke ID og baserer det på Timer kan jeg vel i
> teorien få to ens tal?

Når vi snakker millisekunder er det meget usandsynligt, men hvis du stadig
er bange kan du smide et underscore + et 2 cifret random tal.

--
Jakob Andersen



Peter (02-08-2002)
Kommentar
Fra : Peter


Dato : 02-08-02 06:33

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aibevl$csa$1@sunsite.dk...
> Peter wrote:
> > Hvis jeg skal have to unikke ID og baserer det på Timer kan jeg vel i
> > teorien få to ens tal?
>
> Når vi snakker millisekunder er det meget usandsynligt, men hvis du stadig
> er bange kan du smide et underscore + et 2 cifret random tal.

Hvad baserer du den opfattelse på?

Hvis jeg laver et test-script med 2000 udskrivninger af Timer er det først
mellem 800 og 1500 at den skifter værdi.

I fremtiden med hurtigere servere stiger dette tal enormt og gør derved
denne metode uanvendelig.

Hilsen Peter



Jakob Andersen (02-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 02-08-02 07:14

"Peter" <no_email@no.where> wrote
> Hvad baserer du den opfattelse på?

Det er en antagelse, men når du ikke fortæller hvad, hvornår og hvordan? du
skal bruge dit unikke nummer er det lidt svært at sige.

> Hvis jeg laver et test-script med 2000 udskrivninger af Timer er det først
> mellem 800 og 1500 at den skifter værdi.

Timer benytter sig af sekunder og ikke millisekunder.

--
Jakob Andersen



Peter (02-08-2002)
Kommentar
Fra : Peter


Dato : 02-08-02 09:51

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aid7pa$79f$1@news.cybercity.dk...
> "Peter" <no_email@no.where> wrote
> > Hvad baserer du den opfattelse på?
>
> Det er en antagelse, men når du ikke fortæller hvad, hvornår og hvordan?
du
> skal bruge dit unikke nummer er det lidt svært at sige.
>
> > Hvis jeg laver et test-script med 2000 udskrivninger af Timer er det
først
> > mellem 800 og 1500 at den skifter værdi.
>
> Timer benytter sig af sekunder og ikke millisekunder.

Nu gør du mig forvirret.
For at citere fra tidligere:

-----------
> Hvis jeg skal have to unikke ID og baserer det på Timer kan jeg vel i
> teorien få to ens tal?

>> Når vi snakker millisekunder er det meget usandsynligt
-----------


Hvordan får jeg så millisekunder frem?

Og hvad er Timer så for en størrelse?

Hilsen Peter



Jakob Andersen (02-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 02-08-02 13:04

Peter wrote:
> Nu gør du mig forvirret.

Du gør også mig en smule forvirret, vil du ikke fortælle hvor og hvordan det
skal benyttes, så er det en del nemmere at hjælpe. Det svarer lidt til at
ringe til mekanikeren og sige "hvor fylder jeg sprinklervæske på min bil"
uden at fortælle ham hvilken bil det er.

--
Jakob Andersen



Peter (03-08-2002)
Kommentar
Fra : Peter


Dato : 03-08-02 07:49

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aidses$558$1@sunsite.dk...
> Peter wrote:
> > Nu gør du mig forvirret.
>
> Du gør også mig en smule forvirret, vil du ikke fortælle hvor og hvordan
det
> skal benyttes, så er det en del nemmere at hjælpe. Det svarer lidt til at
> ringe til mekanikeren og sige "hvor fylder jeg sprinklervæske på min bil"
> uden at fortælle ham hvilken bil det er.

Jo - jeg bliver blot forvirret fordi du det ene øjeblik anerkender, at Timer
anvender milliskeunder og det næste siger du den anvender sekunder.

Jeg skal lave et unikt ID. Det skal anvendes i en database.

Hilsen Peter




Jakob Andersen (03-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 03-08-02 14:08

"Peter" <no_spam@no.where> wrote
> Jo - jeg bliver blot forvirret fordi du det ene øjeblik anerkender, at
Timer
> anvender milliskeunder og det næste siger du den anvender sekunder.

Jeg har ikke sagt at Timer returnerer millisekunder, men lad nu det ligge.

> Jeg skal lave et unikt ID. Det skal anvendes i en database.

På et website?
Hvor tit bruges det?
Hvor lang tid må der gå før et ID genbruges?
osv.

--
Jakob Andersen
http://www.stresscd.dk/ - Udnyt stress positivt



Peter (03-08-2002)
Kommentar
Fra : Peter


Dato : 03-08-02 19:24

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aigkcb$1hq7$1@news.cybercity.dk...
> "Peter" <no_spam@no.where> wrote
> > Jo - jeg bliver blot forvirret fordi du det ene øjeblik anerkender, at
> Timer
> > anvender milliskeunder og det næste siger du den anvender sekunder.
>
> Jeg har ikke sagt at Timer returnerer millisekunder, men lad nu det ligge.

Jo det har du nu.
Citat:

-----------
Peter:
> Hvis jeg skal have to unikke ID og baserer det på Timer kan jeg vel i
> teorien få to ens tal?

Jakob:
>> Når vi snakker millisekunder er det meget usandsynligt
-----------

> > Jeg skal lave et unikt ID. Det skal anvendes i en database.
>
> På et website?
Ja.

> Hvor tit bruges det?
Ofte.

> Hvor lang tid må der gå før et ID genbruges?
Hvis det genbruges er et unikt ID ikke unikt.
Det ville stride mod selve definitionen af unik.

> osv.
osv.

Problemet er sandsynligvis løst vha LAST_INSERT_ID, men ellers siger jeg til


Tak for hjælpen.

Hilsen Peter



Jakob Møbjerg Nielse~ (02-08-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 02-08-02 12:25

Peter wrote:
> I fremtiden med hurtigere servere stiger dette tal enormt og gør
> derved denne metode uanvendelig.

Her kan man bruge noget lignende:

Application.lock
id = GenerateId()
while id = Application("lastid")
id = GenerateId()
wend
Application("lastid") = id
Application.unlock

Så er man sikret, ligegyldigt hvor hurtige computerne skulle blive.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man



Jakob Andersen (02-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 02-08-02 12:42

Jakob Møbjerg Nielsen wrote:
> Her kan man bruge noget lignende:
>
> Application.lock
> id = GenerateId()
> while id = Application("lastid")
> id = GenerateId()
> wend
> Application("lastid") = id
> Application.unlock
>
> Så er man sikret, ligegyldigt hvor hurtige computerne skulle blive.

Og så skal man nok lige have en Application_OnStart i Global.asa med noget
ala(Pseudo):

Application("lastid" ) = SELECT MAX(MitID) FROM tabel;

--
Jakob Andersen



Jakob Møbjerg Nielse~ (02-08-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 02-08-02 12:49

Jakob Andersen wrote:
> Application("lastid" ) = SELECT MAX(MitID) FROM tabel;

Det er ikke nødvendigt:

Application("lastid") = 0

Jeg går her ud fra at det vil tage mere end et millisekund at genstarte
serveren. Men din metode er selvfølgelig mere sikker.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man



Jakob Andersen (02-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 02-08-02 13:06

Jakob Møbjerg Nielsen wrote:
> Jakob Andersen wrote:
>> Application("lastid" ) = SELECT MAX(MitID) FROM tabel;
>
> Det er ikke nødvendigt:
> Application("lastid") = 0
> Jeg går her ud fra at det vil tage mere end et millisekund at
> genstarte serveren. Men din metode er selvfølgelig mere sikker.

Så starter du jo fra 0 igen?

--
Jakob Andersen



Jakob Møbjerg Nielse~ (02-08-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 02-08-02 16:05

Jakob Andersen wrote:
> Så starter du jo fra 0 igen?

Nej, koden skal jo bare have noget at sammenligne med. Selve ID'et
bliver jo generet ud fra funktionen GenerateId() (som selvfølgelig skal
bruge timeren).

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man



Jakob Andersen (03-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 03-08-02 14:02

"Jakob Møbjerg Nielsen" <jakob@dataloger.dk> wrote
> Nej, koden skal jo bare have noget at sammenligne med. Selve ID'et
> bliver jo generet ud fra funktionen GenerateId() (som selvfølgelig skal
> bruge timeren).

Ahh. Ok, så er jeg med, jeg troede at du ville benytte ID'et fra
appliaktionvariablen som dit ID.

--
Jakob Andersen
http://www.stresscd.dk/ - Udnyt stress positivt



Tobias Hinnerup (01-08-2002)
Kommentar
Fra : Tobias Hinnerup


Dato : 01-08-02 19:25


"Peter" <no_email@no.where> wrote in message
news:Lwa29.55$me7.989@news.get2net.dk...
> Hej
>
> Jeg skal have genereret et unikt ID for brugere.
>
> AutoNumber er ikke god, da jeg ikke kender den før linien er skrevet til
DB,
> hvilket ikke er hensigtsmæssigt i mit tilfælde.
>

Er du sikker på at f.eks. @@Identity ikke vil kunne løse dit problem? Læs
evt. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q232144

/Tobias



Jakob Andersen (01-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 01-08-02 19:44

"Tobias Hinnerup" <hinnerup@nospamhinnerup.net> wrote
> Er du sikker på at f.eks. @@Identity ikke vil kunne løse dit problem? Læs
> evt. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q232144

Jeg citerer Peter
"AutoNumber er ikke god, da jeg ikke kender den før linien er skrevet til
DB,
hvilket ikke er hensigtsmæssigt i mit tilfælde."

Hvordan vil du bruge @@Identity før linien er skrevet til Databasen

--
Jakob Andersen
http://www.stresscd.dk/ - Udnyt stress positivt



Tobias Hinnerup (02-08-2002)
Kommentar
Fra : Tobias Hinnerup


Dato : 02-08-02 12:47


"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aibvan$22lh$1@news.cybercity.dk...
> "Tobias Hinnerup" <hinnerup@nospamhinnerup.net> wrote
> > Er du sikker på at f.eks. @@Identity ikke vil kunne løse dit problem?
Læs
> > evt. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q232144
>
> Jeg citerer Peter

God klaret

> "AutoNumber er ikke god, da jeg ikke kender den før linien er skrevet til
> DB,
> hvilket ikke er hensigtsmæssigt i mit tilfælde."
>
> Hvordan vil du bruge @@Identity før linien er skrevet til Databasen
>

Der er god sandsynlighed for at grunden til at han mener ikke at kunne bruge
autonumber er, at han ikke kender en hensigtsmæssig måde at hente et
ny-genereret nummer på - jeg er ikke i tvivl om at du selv har set spørgsmål
om emnet utallige gange.

Uden at citere mig selv, kan vi sikkert begge spole tilbage og se at jeg i
øvrigt formulerede mit svar som et spørgsmål

/Tobias



Jakob Andersen (02-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 02-08-02 13:07

Tobias Hinnerup wrote:
> Der er god sandsynlighed for at grunden til at han mener ikke at
> kunne bruge autonumber er, at han ikke kender en hensigtsmæssig måde
> at hente et ny-genereret nummer på

Okay, det havde jeg ikke lige skænket en tanke..

--
Jakob Andersen



Peter (02-08-2002)
Kommentar
Fra : Peter


Dato : 02-08-02 06:34

"Tobias Hinnerup" <hinnerup@nospamhinnerup.net> wrote in message
news:aibued$21fd$1@news.cybercity.dk...
>
> "Peter" <no_email@no.where> wrote in message
> news:Lwa29.55$me7.989@news.get2net.dk...
> > Hej
> >
> > Jeg skal have genereret et unikt ID for brugere.
> >
> > AutoNumber er ikke god, da jeg ikke kender den før linien er skrevet til
> DB,
> > hvilket ikke er hensigtsmæssigt i mit tilfælde.
> >
>
> Er du sikker på at f.eks. @@Identity ikke vil kunne løse dit problem? Læs
> evt. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q232144

Jeg anvender MySQL

Hilsen Peter



Jakob Andersen (02-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 02-08-02 13:05

Peter wrote:
> Jeg anvender MySQL

http://www.mysql.com/doc/G/e/Getting_unique_ID.html

Men du skal altså stadig i databasen først.

--
Jakob Andersen



Peter (03-08-2002)
Kommentar
Fra : Peter


Dato : 03-08-02 08:42

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:aidsi7$5ei$1@sunsite.dk...
> Peter wrote:
> > Jeg anvender MySQL
>
> http://www.mysql.com/doc/G/e/Getting_unique_ID.html
>
> Men du skal altså stadig i databasen først.

OK - den artikel er faktisk ret interessant, da den rent faktisk indsætter
mit autonumber ID i den anden tabel, hvilket kan løse det problem jeg sad
med.

Nu må jeg bare lede efter lidt dolumentation omkring den, da de 4-5 linier
nederst ikke er helt tilstrækkelige.

Hilsen Peter



Peter Lykkegaard (02-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 02-08-02 06:48


"Peter" <no_email@no.where> wrote in message
news:Lwa29.55$me7.989@news.get2net.dk...
> Hej
>
> Jeg skal have genereret et unikt ID for brugere.
>
Kik på hvordan man GUID (Global Unique IDentifier)'
Det skulle kunne løse problemet med unikt ID

Der findes også tredjeparts produkter som GUID Maker (freeware)
fx
http://netcoders.dk/components.asp?mode=show_component&comp_id=46

mvh/Peter Lykkegaard





Peter (02-08-2002)
Kommentar
Fra : Peter


Dato : 02-08-02 09:54

"Peter Lykkegaard" <polonline@hot.mail.com> wrote in message
news:g0p29.9$7S.1154@news.get2net.dk...
>
> "Peter" <no_email@no.where> wrote in message
> news:Lwa29.55$me7.989@news.get2net.dk...
> > Hej
> >
> > Jeg skal have genereret et unikt ID for brugere.
> >
> Kik på hvordan man GUID (Global Unique IDentifier)'
> Det skulle kunne løse problemet med unikt ID
>
> Der findes også tredjeparts produkter som GUID Maker (freeware)
> fx
> http://netcoders.dk/components.asp?mode=show_component&comp_id=46

hej

Tak for svaret.
Den ser umiddelbart lovende ud.
Men er den dokumenteret nogen steder, så jeg kan have en chance for at
overtale min udbyder til at installere den?

Hilsen Peter



Peter Lykkegaard (02-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 02-08-02 10:05


"Peter" <no_email@no.where> wrote in message
news:1Nr29.24$7S.2257@news.get2net.dk...
> "Peter Lykkegaard" <polonline@hot.mail.com> wrote in message
> news:g0p29.9$7S.1154@news.get2net.dk...
> >
> >
> > Der findes også tredjeparts produkter som GUID Maker (freeware)
> > fx
> > http://netcoders.dk/components.asp?mode=show_component&comp_id=46
>
> Men er den dokumenteret nogen steder, så jeg kan have en chance for at
> overtale min udbyder til at installere den?
>
Der er flere udbydere der allerede har den installeret, såeeh
http://serverobjects.com/products.htm#free

Evt kik her
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=4&txtCodeId
=6353

mvh/Peter Lykkegaard




Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste