Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AspAL

Problemas com condição em While

Recommended Posts

Tenho duas condições dentro de um while. Ou uma condição acontece ou acontece a outra. O esquema é o seguinte: <table> <%while not i = 20 or rs.eof i = i + 1%> <tr> <td> <font> <%=rs("hora")%> horas <b> <%=rs("programa")%> </b> </font> <%rs.movenext%> </td> </tr> <%wend%> </table>certo? sem muitas complicações! O problema é que só tenho 10 registros pra a tal tabela, mas ele não pára de dar o loop! Ou seja, a condição i=20 não foi satisfeita já que só tenho 10, então ele deveria parar na condição rs.eof, já que já chegou no final do arquivo! Só que ele continua procurando por outros registros, e dá erro:ADODB.Field erro '80020009'BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.programacao.asp, line 0 alguém sabe pq???Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

duas alternativas

 

<table><%while i <> 20 or not rs.eofi = i + 1%><tr><td><font> <%=rs("hora")%> horas<b> <%=rs("programa")%> </b> </font><%rs.movenext%></td></tr><%wend%></table><table><%while i <> 20i = i + 1if not rs.eof then%><tr><td><font> <%=rs("hora")%> horas<b> <%=rs("programa")%> </b> </font><%rs.movenext%></td></tr><%end ifwend%></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

duas alternativas

<table><%while i <> 20 or not rs.eofi = i + 1%><tr><td><font> <%=rs("hora")%> horas<b> <%=rs("programa")%> </b> </font><%rs.movenext%></td></tr><%wend%></table><table><%while i <> 20i = i + 1if not rs.eof then%><tr><td><font> <%=rs("hora")%> horas<b> <%=rs("programa")%> </b> </font><%rs.movenext%></td></tr><%end ifwend%></table>
continua dando erro! O problema que que ele tá chegando no final do banco, e tah tentando mover para o próximo registro, sendo que não existe o próximo!Tipo... eu preciso que ele aponte para um determinado registro. Depois, ele vai ter q apontar para os próximos 20 registros, e sair escrevendo-os. Só que o problema acontece quando eu só tenho menos registros na tabela do que eu solicitei! Tipo, eu só tenho 10 registros restantes e pedi pra ele mostrar os próximos 20! Vão ficar faltando 10, e vai dar erro!Jah tentei rs.eof mas não tá pegando!Alguém sabe alguma forma de eu condicionar um while de uma maneira que ele vá mostrando os próximos 20 registros (se tiver 20), ou encerre caso tenha menos de 20 registros!!!Alguém?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:While (i < 21) and (not rs.eof)

continua dando o msm erro... eu preciso q ele entenda que mesmo q ele não tenha alcançado os 20 registros solicitados, se já for o final do arquivo, ele deve parar! :(seria mais o menos o mesmo esquema de uma paginação, tá entendendo!se em uma paginação ele mostra 10 registros por página, e na última página, só me restam 3 registros na tabela para serem mostrados, como é que eu faço no código, se lá está determinado 10 reg por pág? http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

 

<table>

<%i=0while i < 21i = i + 1if not rs.eof then%><tr><td><font> <%=rs("hora")%> horas<b> <%=rs("programa")%> </b> </font><%rs.movenext%></td></tr><%end ifwend%></table>

desta forma você verifica a cada passada do loop se o recordset chegou ao fim

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas pra que esse 20?

 

É pra exibir somente 20 registros por página?

 

Se for define o rs.pagesize = 20

 

e dei seu while sem isso de 20

while not rs.eof

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.