/ 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
Stort problem med "RANDOM" i ASP....
Fra : itak


Dato : 17-01-04 11:02

' Finder et tilfældigt tal mellem 1 og ? - FRA OG MED 1 og TIL OG
MED ? og sætter det lig med variablen TilfaeldigtIDTal.
' til det antal ID-filer der findes i databasen
Function Tilfaeldigttal(intHoejesteNummer)
Randomize
Tilfaeldigttal = Int(Rnd * intHoejesteNummer) + 1
End Function
TilfaeldigtIDTal = Int(Tilfaeldigttal(10))

' Opbygger SQL streng
strSQL = "SELECT Foto FROM datatable WHERE ID Like '"&
TilfaeldigtIDTal & "'"

' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")

' Sti til database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("/db/data.mdb")

' Åbner databaseforbindelsen
Conn.Open DSN

..................

....det fungerer bare ikke. Jeg får følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to
open registry key 'Temporary (volatile) Jet DSN for process 0x6c8
Thread 0x73c DBC 0x206fe2c Jet'.

....og fejl i linien hvor dataforbindelsen åbnes :"Conn.Open
DSN"

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
finn elmgaard (17-01-2004)
Kommentar
Fra : finn elmgaard


Dato : 17-01-04 11:27

"itak" <admin@itak.dk> wrote in message news:bub16r$quk$1@sunsite.dk...
> ' Finder et tilfældigt tal mellem 1 og ? - FRA OG MED 1 og TIL OG
> MED ? og sætter det lig med variablen TilfaeldigtIDTal.
> ' til det antal ID-filer der findes i databasen
> Function Tilfaeldigttal(intHoejesteNummer)
> Randomize
> Tilfaeldigttal = Int(Rnd * intHoejesteNummer) + 1
> End Function
> TilfaeldigtIDTal = Int(Tilfaeldigttal(10))
>
> ' Opbygger SQL streng
> strSQL = "SELECT Foto FROM datatable WHERE ID Like '"&ID
> TilfaeldigtIDTal & "'"
>
> ' ADODB connection objektet
> Set Conn = Server.CreateObject("ADODB.Connection")
>
> ' Sti til database
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
> Server.MapPath("/db/data.mdb")
>
> ' Åbner databaseforbindelsen
> Conn.Open DSN
>
> .................
>
> ...det fungerer bare ikke. Jeg får følgende fejl:
>
> Microsoft OLE DB Provider for ODBC Drivers error '80004005'
>
> [Microsoft][ODBC Microsoft Access Driver]General error Unable to
> open registry key 'Temporary (volatile) Jet DSN for process 0x6c8
> Thread 0x73c DBC 0x206fe2c Jet'.
>
> ...og fejl i linien hvor dataforbindelsen åbnes :"Conn.Open
> DSN"
>

Så er det nok ikke RANDOM der er problemet, som antydet i dit subject.
Derimod siger fejlmeldingen, at det er connection til din database, der
fejler. Har du din tabel åben i samtidig i Access? Kan du iøvrigt connecte
til databasen?

Iøvrigt undrer jeg mig lidt over din strSQL. Hvorfor bruger du LIKE og ikke
= ?

mvh
Finn





itak (17-01-2004)
Kommentar
Fra : itak


Dato : 17-01-04 15:37

finn elmgaard wrote in dk.edb.internet.webdesign.serverside.asp:
> "itak" <admin@itak.dk> wrote in message news:bub16r$quk$1@sunsite.dk...
> > ' Finder et tilfældigt tal mellem 1 og ? - FRA OG MED 1 og TIL OG
> > MED ? og sætter det lig med variablen TilfaeldigtIDTal.
> > ' til det antal ID-filer der findes i databasen
> > Function Tilfaeldigttal(intHoejesteNummer)
> > Randomize
> > Tilfaeldigttal = Int(Rnd * intHoejesteNummer) + 1
> > End Function
> > TilfaeldigtIDTal = Int(Tilfaeldigttal(10))
> >
> > ' Opbygger SQL streng
> > strSQL = "SELECT Foto FROM datatable WHERE ID Like '"&ID
> > TilfaeldigtIDTal & "'"
> >
> > ' ADODB connection objektet
> > Set Conn = Server.CreateObject("ADODB.Connection")
> >
> > ' Sti til database
> > DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
> > Server.MapPath("/db/data.mdb")
> >
> > ' Åbner databaseforbindelsen
> > Conn.Open DSN
> >
> > .................
> >
> > ...det fungerer bare ikke. Jeg får følgende fejl:
> >
> > Microsoft OLE DB Provider for ODBC Drivers error '80004005'
> >
> > [Microsoft][ODBC Microsoft Access Driver]General error Unable to
> > open registry key 'Temporary (volatile) Jet DSN for process 0x6c8
> > Thread 0x73c DBC 0x206fe2c Jet'.
> >
> > ...og fejl i linien hvor dataforbindelsen åbnes :"Conn.Open
> > DSN"
> >
>
> Så er det nok ikke RANDOM der er problemet, som antydet i dit subject.
> Derimod siger fejlmeldingen, at det er connection til din database, der
> fejler. Har du din tabel åben i samtidig i Access? Kan du iøvrigt connecte
> til databasen?
>
> Iøvrigt undrer jeg mig lidt over din strSQL. Hvorfor bruger du LIKE og ikke
> = ?
>
> mvh
> Finn
>
>
>
>

Grunden til jeg bruger LIKE og ikke =, er at jeg på en side har set, at
"forfatteren" brugte LIKE. Jeg er ikke garvet ASP'er, så hvis du kan lære mig
noget nyt, bliver jeg da vældig glad...

Nej, jeg har ikke databasen åben, og ja - jeg ville også selv mene det var
forbindelsen til databasen der var problemet, men jeg har lavet et gennemløb
af databasen tidligere og dér var ingen problemer. Det er kun fordi, jeg
gerne vil have rækkefølgen af gennemløbet til at være tilfældig.

MVH
Allan

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

finn elmgaard (17-01-2004)
Kommentar
Fra : finn elmgaard


Dato : 17-01-04 17:03

..
..
..
> > > ' Sti til database
> > > DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
> > > Server.MapPath("/db/data.mdb")
> > >
> > > ' Åbner databaseforbindelsen
> > > Conn.Open DSN
> > >
> > > .................
> > >
> > > ...det fungerer bare ikke. Jeg får følgende fejl:
> > >
> > > Microsoft OLE DB Provider for ODBC Drivers error '80004005'
> > >
> > > [Microsoft][ODBC Microsoft Access Driver]General error Unable to
> > > open registry key 'Temporary (volatile) Jet DSN for process 0x6c8
> > > Thread 0x73c DBC 0x206fe2c Jet'.
> > >
> > > ...og fejl i linien hvor dataforbindelsen åbnes :"Conn.Open
> > > DSN"
> > >
> >
> > Så er det nok ikke RANDOM der er problemet, som antydet i dit subject.
> > Derimod siger fejlmeldingen, at det er connection til din database, der
> > fejler. Har du din tabel åben i samtidig i Access? Kan du iøvrigt
connecte
> > til databasen?
> >
> > Iøvrigt undrer jeg mig lidt over din strSQL. Hvorfor bruger du LIKE og
ikke
> > = ?
> >
> > mvh
> > Finn


> Grunden til jeg bruger LIKE og ikke =, er at jeg på en side har set, at
> "forfatteren" brugte LIKE. Jeg er ikke garvet ASP'er, så hvis du kan lære
mig
> noget nyt, bliver jeg da vældig glad...

Det er ikke sådan, at LIKE ikke er anvendelig. LIKE bruges så vidt jeg ved
mest til tekststrenge, hvor man måske kun har en del af strengen at søge
med.
Du har et tal (TilfaeldigtIDTal) og i din database har du et ID, der
formentlig er defineret som et tal. Så kan man umiddelbart anvende =. ( så
skal der ikke være ' omkring tallet i din StrSQL).

Dette blot til orientering, for det hjælper ikke på dit problem med
forbindelsen til databasen.

> Nej, jeg har ikke databasen åben, og ja - jeg ville også selv mene det var
> forbindelsen til databasen der var problemet, men jeg har lavet et
gennemløb
> af databasen tidligere og dér var ingen problemer. Det er kun fordi, jeg
> gerne vil have rækkefølgen af gennemløbet til at være tilfældig.

Så har jeg desværre ikke noget godt bud på løsningen.
Jeg har selv oplevet, at jeg pludselig ikke kunne få forbindelse til en
Access, hvor jeg kort forinden netop havde haft forbindelse. Men hjælper dig
jo ikke meget....

mvh
Finn




Jesper Stocholm (17-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 17-01-04 17:03

itak wrote :

> ' Finder et tilfældigt tal mellem 1 og ? - FRA OG MED 1 og TIL OG
> MED ? og sætter det lig med variablen TilfaeldigtIDTal.
> ' til det antal ID-filer der findes i databasen
> Function Tilfaeldigttal(intHoejesteNummer)
> Randomize
> Tilfaeldigttal = Int(Rnd * intHoejesteNummer) + 1
> End Function
> TilfaeldigtIDTal = Int(Tilfaeldigttal(10))
>
> ' Opbygger SQL streng
> strSQL = "SELECT Foto FROM datatable WHERE ID Like '"&
> TilfaeldigtIDTal & "'"

Hvad er resultatet af dette? Udskriv gerne din SQL-streng efter denne
linie og prøv at afvikle den direkte i din Access-database.

Hvis ID er et tal, giver det i øvrigt ikke mening at bruge LIKE, da den
kun anvendes på tekststrenge. Prøv at udskifte LIKE med "=". Hvis ID er
et tal, så skal der ikke plinger udenom.

Se evt artiklen www.asp-faq.dk/article?id=41, der giver et par gode idéer
til, hvad der er godt at medsende i indlæg, hvor du beder om hjælp.

--
Jesper Stocholm

Gør Christiania en tjeneste - køb din hash et andet sted.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste