Inquiridor
Paginação dar sempre erro

Pergunta
-
Olá pessoal,
Já fucei na internet essa semana passada, mas não tem jeito, acho... Estou com problema de paginação, usei esse exemplo: http://imasters.uol...._sem_misterios/
Ele funciona em sites com banco de dados Access e até MySQL, mas estou fazendo um site com banco de dados SQL Server e dar esse erro:
Tipo de erro:
ADODB.Recordset (0x800A0CB3)
O conjunto de registros atual não oferece suporte para indicadores. Isso pode ser uma limitação do provedor ou do tipo de cursor selecionado.
/jaime/entrevistas.asp, line 177
E a linha 177 é: rsbusca.AbsolutePage=intpagina
Alguém já passou por isso ou alguém conhece uma paginação que rode bem com o SQL Server? Pois, não acho uma solução. Seria uma paginação simples mesmo, mas não resolvo.
Obs: A programação é ASP, só.
Grato.
Marcelo Vinicius
Todas as Respostas
-
Achei um ASP ( http://www.bufaloinfo.com.br/artigos/artigo1404.asp ) e fiz assim:
Obs: No caso dele havia um form antes para selecionar e mandar para essa listagem, fiz o teste, tirei o form e mandei imprimir direto essa paginação, mas quando clico em "próxima" ele chama a pagina paginacao.asp, mas não exibe o próximo conteúdo, não está paginando, por que?
O botão "proxima" está "morto" só chama a mesma página sem mostrar o proximo conteudo, onde errei? O código que montei é esse:
<%
dim cn,rs,tp,a,codprev,codnext
tp=""
set cn=createobjecT("adodb.connection")
set rs=createobject("adodb.recordset")
cn.open "DRIVER={SQL Server};SERVER=MARCELO-SOUMLJR;DATABASE=metalvox2010;Uid=sa;PWD=marcelo4000"
rs.cursorlocation=2
rs.cursortype=3
rs.open "SELECT * FROM entrevistas INNER JOIN entrevistasfotos ON entrevistas.codigo = entrevistasfotos.id order by entrevistas.codigo desc",cn
response.write("<table border=1><tr><td>Produto</td><td>Preço</td></tr>")
if tp="prev" then
rs.movelast
if rs.recordcount=6 then
rs.moveprevious
end if
end if
codprev=rs.fields("codigo")
for a=1 to 1
if rs.eof or rs.bof then
exit for
end if
response.write("<tr><td>")
response.write(rs.fields("titulo"))
response.write("</td><td>")
response.write(rs.fields("titulo"))
response.write("</td></tr>")
if tp="prev" then
rs.moveprevious
else
rs.movenext
end if
next
if a > 1 then
if tp<>"prev" then
rs.moveprevious
else
rs.movenext
end if
codnext=rs.fields("codigo")
if tp<>"prev" then
rs.movenext
else
rs.moveprevious
end if
end if
if (tp="prev" and rs.recordcount>5) or (tp<>"prev" and request.form("cod")<>"") then
response.write("<form method=post action='paginacao.asp'>")
response.write("<input type=hidden name='tp' value='prev'>")
response.write("<input type=hidden name='cod' value='" & codprev & "'>")
response.write("<input type=hidden name='txtcat' value='" & request.form("txtcat") & "'>")
response.write("<input type=submit value='<< Anterior'>")
response.write("</form>")
end if
if tp="prev" or (tp<>"prev" and not rs.eof) then
response.write("<form method=post action='paginacao.asp'>")
response.write("<input type=hidden name='tp' value='next'>")
response.write("<input type=hidden name='cod' value='" & codnext & "'>")
response.write("<input type=hidden name='txtcat' value='" & request.form("txtcat") & "'>")
response.write("<input type=submit value='Proximo >>'>")
response.write("</form>")
end if
rs.close
cn.close
set rs=nothing
set cn=nothing
%> -
Um exemplo:
set objConteudoBasico = Server.CreateObject("Adodb.Recordset")
objConteudoBasico.CursorLocation = 3
objConteudoBasico.cursorTYpe = 0
objConteudoBasico.LockType = 1
objConteudoBasico.open strSqlAn,conn
objConteudoBasico.PageSize = 3
Da uma olhada nesse artigo:
http://blogasp.wordpress.com/2006/08/02/metodos-de-um-recordset-cursorlocation-cursortype-locktype/