Avatar billede axkris Nybegynder
29. maj 2004 - 17:37 Der er 4 kommentarer og
1 løsning

Vil kun bevæge sig frem i recordset'et - hvorfor?

Hej

Jeg har et problem med mit script, fordi det altid skriver "HELT TOM", når der bliver valgt et tilfældigt tal, som er lavere end på den record, som tidligere er blevet anvendt. Den kan vil kun gå frem i recordset'et - ikke tilbage - hvorfor?

Set RS = Server.CreateObject("ADODB.Recordset")
        strQuery = "SELECT ANNONCE_ID, TRIN FROM PLUSPROFIL_ANNONCE WHERE POINTS < MAXPOINTS AND TRIN <> 0"
        'set rs = dataConn.execute(strQuery)
        rs.Open strQuery, dataConn
       
        if not (rs.eof or rs.bof) then
            i = 0
            y = 0
            while i < 3 and y < 10
                randomize
                ranValue = int(strAnnonceCount * rnd)
                response.write "<br>her er den: " & ranValue
   
                if not (rs.eof or rs.bof) then
                    rs.move(ranValue)
                    if not (rs.eof or rs.bof) then
                        randomize
                        ranValue2 = int(strMaxTrin * rnd)
                        if (rs("trin") * 2) > 0 then
                            response.write "<br> ... kigger på " & RS("ANNONCE_ID") & " på trin " & rs("trin")
                            if inStr(strAnnonceIDs, rs("ANNONCE_ID")) = 0 then
                                strAnnonceIDs = strAnnonceIDs & " OR ANNONCE_ID = " & rs("ANNONCE_ID")
                                i = i + 1
                                response.write " ... ramte plet med " & RS("ANNONCE_ID") & " på trin " & rs("trin")
                            else
                                response.write "... dur ikke"
                            end if
                        else
                            response.write "<br> ... for lav: " & RS("ANNONCE_ID") & " på trin " & rs("trin")                           
                        end if
                    else
                        response.write "<br> ... den er tom!"                                                   
                    end if
                else
                    response.write "<br> ... den er HELT tom!"                                                                       
                end if
                y = y + 1
            wend
Avatar billede axkris Nybegynder
29. maj 2004 - 17:38 #1
Du skal ikke tage dig af alle if-sætningerne... de bliver fjernet, når det virker.
Avatar billede erikjacobsen Ekspert
29. maj 2004 - 17:50 #2
Drivere understøtter ikke altid at du kan gå tilbage. Lav dine tilfældig tal først,
sorter dem, og find de tilhørende records i eet gennemløb.
Avatar billede axkris Nybegynder
30. maj 2004 - 16:28 #3
Takker for hjælpen. Lavede det, som du sagde :)

Er det specielt noget som gør sig gældende i mysql eller er det generelt at man ikke kan gå tilbage i recordsetøet.

Jeg skifter også snart til MSSql og så kan det være at jeg kan gå tilbage i recordset'et i deres database-driver.

PS. Tryk svar :)
Avatar billede erikjacobsen Ekspert
30. maj 2004 - 21:32 #4
Tak, ingen svar fra mig - jeg samler ikke på point.
Det afhænger af driveren. Du kan generelt ikke regne med at kunne gå tilbage, og
hvis du kan er det heller ikke sikkert det er specielt effektivt.
Avatar billede axkris Nybegynder
30. maj 2004 - 21:51 #5
Ok, takker atter :-D
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