Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz a paginação na minha página principal e está tudo certo. Ok. Mas na página de pesquisa está rolando um problema. Os registros (20) aparecem perfeitamente na primeira página, mas na página seguinte ocorre um erro:
ADODB.Recordset error '800a0e78'
Operação não permitida quando o objeto está fechado.
/pesquisa.asp, line 1186
Bom, a linha que está dando erro no código é o (... IF rsconsultar.eof then ), logo após o SELECT CASE que fiz para rodar o recordset e declarar a instrução SQL.
O que eu não entendo é porque em uma página funcionou perfeitamente e na outra, com exatamente o mesmo código, não funciona da 2º página em diante. Só aparecem os primeiro 20 registros!
Me parece que o banco ou o recordset estão sendo fechados. Mas não entendi a lógica. Vou postar o código:
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="ed">
<%
' Código de conulta para o Canal de Notícias
SET RSConsultar = server.CreateObject ("ADODB.RecordSet")
'Fazendo a paginação
RSConsultar.PageSize = 20
if Palavra = "" AND Data1 <> "0/0/0" and Data2 <> "0/0/0" then
SELECT CASE Assunto
Case "1"
SQL=" SELECT * FROM TblArte A , TblSite S "&_
" WHERE A.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "2"
SQL=" SELECT * FROM TblCinema C, TblSite S "&_
" WHERE A.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "3"
SQL=" SELECT * FROM TblEconomia E , TblSite S "&_
" WHERE EC.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "4"
SQL=" SELECT * FROM TblEducacao ED , TblSite S "&_
" WHERE ED.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "5"
SQL=" SELECT * FROM TblErotica E , TblSite S "&_
" WHERE ER.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "6"
SQL=" SELECT * FROM TblEspMotor EM , TblSite S "&_
" WHERE EM.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "7"
SQL=" SELECT * FROM TblEsoterismo ES , TblSite S "&_
" WHERE ES.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "8"
SQL=" SELECT * FROM TblEsportes E , TblSite S "&_
" WHERE E.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "9"
SQL=" SELECT * FROM TblEspRadicais ER , TblSite S "&_
" WHERE ER.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
Case "10"
SQL=" SELECT * FROM TblGames G , TblSite S "&_
" WHERE G.Site=S.CodSite AND Data BETWEEN '"&Data1&"' AND '"&Data2&"' ORDER BY ID DESC "
RSConsultar.Open SQL,ConBanco,3,3
END SELECT
IF rsconsultar.eof then %><center>
Não há registros
<%
ELSE
IF Request.QueryString("pagina")="" then
intpagina=1
ELSE
IF cint(Request.QueryString("pagina"))<1 then
intpagina=1
ELSE
IF cint(Request.QueryString("pagina"))> RSConsultar.PageCount then
intpagina=RSConsultar.PageCount
ELSE
intpagina=Request.QueryString("pagina")
END IF
END IF
END IF
END IF
RSConsultar.AbsolutePage=intpagina
cont = 1
while cont < RSConsultar.PageSize AND NOT RSConsultar.eof %>
<!--AQUI VEM OS REGISTROS-->
<%RSConsultar.movenext
cont = cont + 1
IF RSConsultar.EOF then
response.write " "
END IF
wend
%>
</table>
<!-- Link que dá a opção pro usuário avançar ou recuar -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="edb">
<tr>
<td height="30" align="center" bgcolor="#FFFFFF">
<% IF intpagina > 1 then %>
<a href="pesquisa.asp?pagina=<%=intpagina-1%>" class="linkmenu" onmouseover="this.className='linkmenuon'" onmouseout="this.className='linkmenu'">
Anterior</a>
<% END IF %>
-
<% IF strcomp(intpagina,RSConsultar.PageCount) <> 0 then
%>
<a href="pesquisa.asp?pagina=<%=intpagina + 1%>" class="linkmenu" onmouseover="this.className='linkmenuon'" onmouseout="this.className='linkmenu'">
Próxima </a>
<% END IF
SET RSConsultar=NOTHING
%>
</td>
</tr>
</table>
<!-- fim da Mostra de paginação (próxima/anterior) -->
Não entendo o pq. do erro. Alguém sabe?
Carregando comentários...