Ir para conteúdo

POWERED BY:

Arquivado

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

Veronica Gravino

[Resolvido] Paginação com Erro!

Recommended Posts

Gente tenho uma pagina ASP que exibe imagens em 3 colunas por 2 linhas , sao 6 images por pagina mas a paginação esta com um erro estranho, porque na primeira página ela exibe certo, ja na segunda ela exibe as 3 ultimas imagens novamente ou um erro quando for maior que 6 o numero de imagens inseridas na tabela .. alguem poderia me ajudar???

 

ADODB.Field error '80020009'

 

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

 

 

Aqui está o código e o link:

http://www.santanaativa.com.br/parceiros_teste.asp

:

<%
Call abre_conexao(ConnString,conexao)

pag = Request.QueryString("pagina")

If pag = "" Then
pag = 1
End if

Dim ConnString, conexao
Set rsParceiros=Server.CreateObject("ADODB.Recordset")
rsParceiros.CursorLocation = 3
rsParceiros.CursorType = 3 'Tipo do cursor do RecordSet
rsParceiros.PageSize = 6
sqlParceiros = "SELECT * FROM Parceiros "
rsParceiros.Open sqlParceiros, conexao
Set rsParceiros.activeConnection = Nothing



%>
<body>
<div id="tudo">
<div id="esquerda">
  <!--#include file="ladoazul.asp" -->
</div>
<div id="direita2">  <img src="img/titulos/parceiros.jpg" width="436" height="27" /><br />
<table border="0" cellspacing="15">
	  
<%
If rsParceiros.Eof Then
Response.Write("<b>Não Existem Dados cadastrados!</b>")
Else
rsParceiros.AbsolutePage = pag
t=0
'Tazemos todos os dados da tabela
While Not rsParceiros.Eof and i < rsParceiros.PageSize
i = i + 1
response.write "<TR valign=top>"
x=1
for x=1 to 3 'n= numero de colunas que você quer
%>
 <td align="right" valign="bottom">
 <img src="../administrativo/parceiros/fotos/<%=rsParceiros("imagem_parc")%>"  width="100" height="100" border="0" class="branco" alt="<%=rsParceiros("nome_parc")%>"/>
 </td>
<%
rsParceiros.movenext
'else
response.write"<TD></TD>"
'end if
next
response.write"</TR>"
Wend
end if
%>


<%
With Response
.Write("<table width=""100%"" align=""center"" cellspacing=""0"" cellpadding=""2"" border=""0"">") & Vbcrlf
.Write("<tr><td colspan=""2"" height=""2""></td></tr>")& Vbcrlf
.Write("<tr><td align=""center"" class='style1'>[ -") & Vbcrlf
For i = 1 to rsParceiros.Pagecount

If i = Cint(pag) then
.Write("<b>"& i &"</b> ")
Else
.Write("<a href='" & Request.ServerVariables("Script_Name") & "?pagina=" & i & "'>" & i & "</a> ")
End if

Next
.Write("- ]</b></td></tr><br>")& Vbcrlf
.Write("</table>")& Vbcrlf
End With

%>

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparece a linha do erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veronica

 

Dentro do For.. Next tem um else/end if comentado. Acredito que você deva descomentar, e colocar o if antes das linhas responsáveis por exibir a imagem validando se existe ou não registro.

 

Vai ficar mais ou menos assim:

 

 

<%for x=1 to 3
  If Not rsParceiros.EOF Then%>
<td align="right" valign="bottom">
<img src="../administrativo/parceiros/fotos/<%=rsParceiros("imagem_parc")%>"  width="100" height="100" border="0" class="branco" alt="<%=rsParceiros("nome_parc")%>"/>
</td>
<%
	rsParceiros.movenext
  else %>
   <TD></TD>
<%
  end if
next
%>

Abraço

Cassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola consegui fazer com que o script nao de mais o erro de EOF mas a paginação continua estranha...

tanto a pagina=1 e pagina=2 são iguais, alguem sabe porque acontece isso?

 

vejam:

http://www.santanaativa.com.br/parceiros_teste.asp

 

 

<% 
i= 1
do while not rsParceiros.EOF  and i < rsParceiros.PageSize
response.write "<TR valign=top>"
x=1
for x=1 to 3 'n= numero de colunas que você quer
  if not rsParceiros.EOF then
%>

 <td align="right" valign="bottom">
 <img src="http://www.santanaativa.com.br/administrativo/parceiros/fotos/<%=rsParceiros("imagem_parc")%>"  width="100" height="100" border="0" class="branco" alt="<%=rsParceiros("nome_parc")%>"/>
 </td>
 
<%
rsParceiros.movenext
i = i + 1
'else
response.write"<TD></TD>"
end if
next
response.write"</TR>"
loop

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veronica

 

A paginação não estava dando certo pq você não estava montando o td vazio quando nao houver registro pq o else/end if continuavam comentados.

 

Segue o código corrigido:

 

<%
i= 1
do while not rsParceiros.EOF  and i < rsParceiros.PageSize%>
<TR valign=top>
<%x=1
for x=1 to 3
  If Not rsParceiros.EOF Then%>
<td align="right" valign="bottom">
<img src="http://www.santanaativa.com.br/administrativo/parceiros/fotos/<%=rsParceiros("imagem_parc")%>"  width="100" height="100" border="0" class="branco" alt="<%=rsParceiros("nome_parc")%>"/>
</td>
<%
	rsParceiros.movenext
	i = i + 1
  Else %>
   <TD></TD>
<%
  End if
next %>
</TR>
<%
loop%>

Mas na verdade pode ser que ainda exista outro problema.. verifica se você está atualizando a página do RecordSet. Ao clicar na página desejada, você precisa atualizar o seguinte parametro:

 

rsParceiros.AbsolutePage = pagina

Abraço

Cassiano.

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.