Avatar billede diktator Nybegynder
20. oktober 2000 - 14:49 Der er 6 kommentarer og
1 løsning

Randomize problemer...HASTER

Hej
Jeg udtrækker  nogle nyheder fra min db hvor jeg refererer over 3 tabeller med følgende kriterier:


strSQL = \"SELECT Bog.ID, Bog.Titel, Bog.Beskrivelse, Bog.ISBN, \"
strSQL = strSQL & \"Bog.BilledNavn, Bog.Pris, Bog.Sider, Bog.BogType, \"
strSQL = strSQL & \" tblEmneOrd.EmneOrd \"
strSQL = strSQL & \" FROM Bog, tblBogEmne, tblEmneOrd \"
strSQL = strSQL & \" WHERE Bog.ID = tblBogEmne.BogID AND \"
strSQL = strSQL & \" tblBogEmne.EmneOrdID = tblEmneOrd.EmneID AND \"
strSQL = strSQL & \" (tblEmneOrd.EmneOrd = \'Nyheder\') ORDER BY Bog.Titel\"
Set rsBooks = Server.CreateObject(\"ADODB.Recordset\")
rsBooks.Open strSQL, dbBooks, 3


I dette tilfælde giver det 16 resultater...

Jeg ønsker at vise et random udtræk, altså kun 1 tilfældig post af de 16.
Det volder mig lidt problemer...

Er der nogen der kan \'smelte\' min SQL sammen med nedenstående randomize??


INPUT = \"SELECT Count(Bog.ID) AS Count FROM Bog\"
Set CountBoger = dbMDBooks.Execute(INPUT)

INPUT = \"SELECT * FROM Bog\"
Set Titel = dbMDBooks.Execute(INPUT)

If CountBoger(\"Count\") > 0 Then
Randomize()
Move = Int((CountBoger(\"Count\") - 1 + 1) * Rnd + 1) - 1

Titel.Move Move
End If


*************
Mvh
M!chael
Avatar billede tonkin Nybegynder
20. oktober 2000 - 15:08 #1
strSQL = \"SELECT Bog.ID, Bog.Titel, Bog.Beskrivelse, Bog.ISBN, \"
strSQL = strSQL & \"Bog.BilledNavn, Bog.Pris, Bog.Sider, Bog.BogType, \"
strSQL = strSQL & \" tblEmneOrd.EmneOrd \"
strSQL = strSQL & \" FROM Bog, tblBogEmne, tblEmneOrd \"
strSQL = strSQL & \" WHERE Bog.ID = tblBogEmne.BogID AND \"
strSQL = strSQL & \" tblBogEmne.EmneOrdID = tblEmneOrd.EmneID AND \"
strSQL = strSQL & \" (tblEmneOrd.EmneOrd = \'Nyheder\') ORDER BY Bog.Titel\"
Set rsBooks = Server.CreateObject(\"ADODB.Recordset\")
rsBooks.Open strSQL, dbBooks, 3


INPUT = \"SELECT Count(Bog.ID) AS Count FROM Bog\"
Set CountBoger = dbMDBooks.Execute(INPUT)

If CountBoger(\"Count\") > 0 Then
Randomize()
intMove = Int((CountBoger(\"Count\") - 1 + 1) * Rnd + 1) - 1

rsBooks.Move intMove
End If
Avatar billede diktator Nybegynder
20. oktober 2000 - 15:19 #2
Desværre...:

ADODB.Recordset error \'800a0bb9\'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/kroghsforlag/ranews.asp, line 55
Avatar billede tonkin Nybegynder
20. oktober 2000 - 15:53 #3
Hva\' for en er linie 55 ???

rsBooks.Move intMove
Avatar billede tonkin Nybegynder
20. oktober 2000 - 17:09 #4
Prøv

For i = intMove
    rsBooks.movenext
Next

istedet for

rsBooks.Move intMove
Avatar billede diktator Nybegynder
20. oktober 2000 - 17:22 #5
ups.. ændrede lige:
rsBooks.Open strSQL, dbBooks, 3
til:
rsBooks.Open strSQL, dbMDBooks, 3

Men får nu fejl:
ADODB.Field error \'80020009\'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

?

Avatar billede janus007 Nybegynder
21. oktober 2000 - 22:42 #6
Jeg vil slet ikke smelte den sammen med det pladder, gør sådan her istedet:
Skift:
Set rsBooks = Server.CreateObject(\"ADODB.Recordset\")
rsBooks.Open strSQL, dbBooks, 3

ud med:
Set rsBooks = dbBooks.Execute(strSQL)

og fortsæt med det her............
arrBooks = rsBooks.Getrows
rsBooks.Close

if not rs.books.eof
Randomize()
intMaxarr = ubound(arrBooks, 1)
ranBook = Int((intMaxarr+1) * Rnd)
response.write arrBooks(2, ranBook)
end if
--------------
der er absolut ingen grund til at lave et recordset, du skal jo ikke kunne bladre vel :O)
PS: Lad være med at bruge alle de columns hvis du kun skal bruge en bogtitel eller hvad ved jeg!, indskrænk din select til kun at omhandle det du skal bruge - er du med??

Jeg går udfra at du selv kan rette op på dit sidste indlæg mht. dbBooks og dbMDBooks  :O)

Regardz
Janus
Avatar billede diktator Nybegynder
23. oktober 2000 - 09:49 #7
Hej Janus

Jeg har allerede indskrænket min select, såe... :•)

et par smårettelser (rs.books.eof, +then, +cut’n paste) til dit udemærkede forslag og svineriet kører som det skal...

Grunden til at jeg havde lavet et recordset var at jeg samtidigt talte alle forekomne nyheder..

Nok om det – tak for hjælpen
Mvh/M!chael
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