03. april 2002 - 08:38Der er
16 kommentarer og 1 løsning
Hjæææælp - refresh!!
Hvorfor virker denne her ikke??
ID = request.Querystring("ID") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open db
If ID = "" Then Sql = "Select * from xxx" Set RS = myconn.Execute(Sql) else Sql = "Select * from xxx WHERE ID = "& ID &"" Set RS = myconn.Execute(Sql) END IF IF ID = RS("ID") THEN RS.MoveNext End If %> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="10;URL=http://www.xxxxxx.dk/xxxxx.asp?ID=<%=RS("ID")%>">
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Siden ligger i en frame og skal vise annoncer derfor refresh efter 10 sek.
Den skal ikke vise dem random med fortløbende - men når jeg laver movenext går det galt - så får jeg BOF or EOF - jeg har kigget mig totalt blind på den efterhånden. :-(
***Sql = "Select * from xxx WHERE ID = "& ID &""*** Jeg går ud fra dine ID'er er unikke. Her selecter du altså kun én tabelrække - den tabelrække hvor ID er lig dit request ID.
***IF ID = RS("ID") THEN*** Det giver ingen mening, da det altid vil være sandt. Det er jo netop det kriterie du har selected ud fra.
***RS.MoveNext*** Som nævnt før består dit recordset kun af én tabelrække, derfor får du BOF or EOF når du prøver at gå til den næste...der er ikke flere rækker!
LØSNING? Lad os gå ud fra at dine ID'er har fortløbende numre.
ID = request.Querystring("ID") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open db
If ID = "" Then ID = -1 'dummy id så du ikke får fejl i sql syntaks Sql = "Select * from xxx WHERE ID = "& ID + 1 &"" Set RS = myconn.Execute(Sql) if RS.EOF then RS.Close SQL = "SELECT TOP 1 FROM xxx" Set RS = myconn.Execute(Sql) end if if not RS.EOF then ID = RS("ID") end if RS.Close %> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="10;URL=http://www.xxxxxx.dk/xxxxx.asp?ID=<%=ID%>">
Jeg har ikke testet ovenstående, men jeg tror du kan se ideen i det.
Problemet er netop at de IKKE er fortløbende - men bliver valgt ud fra flere kriterier :-( det var derfor jeg mente at en rs.movenext skulle bruges der.
Ok, I så fald kan du vælge alle records, søge efter dit "gamle" ID, og derefter vælge næste række. Der findes en mere effektiv måde at søge efter ID på end jeg har gjort nedenfor. Det er ved brug af "find" og "filter", men jeg kan ikke lige på stående fod huske hvordan man bruger dem.
SQL = "SELECT * FROM xxx" Set RS = myconn.Execute(Sql) isFound = false do while not RS.EOF and not isFound if ID = RS("ID") then isFound = true end if RS.MoveNext loop if RS.EOF then RS.MoveFirst end if
Ups, et lille type problem. Prøv den her i stedet:
<% ID = trim( request.Querystring("ID") )
Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open db
SQL = "SELECT * FROM xxx" Set RS = myConn.Execute(Sql) isFound = false do while not RS.EOF and not isFound if ID = CStr( RS("ID") ) then isFound = true end if RS.MoveNext loop if RS.EOF then RS.MoveFirst end if
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.