Ir para conteúdo

POWERED BY:

Arquivado

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

marvi

erro de paginação

Recommended Posts

Olá pessoal,

 

Eu uso essa paginação: http://imasters.com.br/artigo/1287/asp/paginacao_sem_misterios/

 

Mas, quando passei para o banco SQL Server e tal, outra conexão, da esse 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

 

Linha 177: rsbusca.AbsolutePage=intpagina

 

Será que AbsolutePage não funciona? O que deve ser?

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se a variavel intpagina tem valor superior a Zero e menor ou igual a maior página do cursor

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o valor de intpagina

e set o CursorLocation=3 'AdUseClient

Compartilhar este post


Link para o post
Compartilhar em outros sites

também a pessoa clica em "proxima" e ela aparece o mesmo conteudo, não anda com a paginação.

 

O valor aparece -1

 

IF rsbusca.EOF then

  Response.write "<i>Não há informações. Busque de uma forma mais detalhada!</i>"
  
  ELSE
oi=  Request.QueryString("pagina")

 IF Request.QueryString("pagina")="" then 

      intpagina=1 
   ELSE
      IF cint(Request.QueryString("pagina"))<1 then

         intpagina=1 
      ELSE
         IF cint(Request.QueryString("pagina"))> rsbusca.PageCount then 
                   intpagina=rsbusca.PageCount 
         ELSE
            intpagina=Request.QueryString("pagina")
         END IF
      END IF
   END IF
END IF

response.write(intpagina)

rsbusca.AbsolutePage=intpagina

intrec=0

Será isso? dar -1, em vez de 2,3 e assim vai, isso quando se clica na paginação "proxima":

 

<tr>
        <td width="100%" height="1">
        
        
        <p align="center"><font face="Verdana" style="font-size: 8pt">
            <font color="#444444"><%
IF intpagina > 1 then 
%> </font> 
<a href="entrevistas.asp?pagina=<%=intpagina-1%>" style="text-decoration: none">
<font color="#444444"><< Anterior</font></a><font color="#444444"> |<% 
END IF

IF strcomp(intpagina,rsbusca.PageCount) <> 0 then 
%> </font> 
<a href="entrevistas.asp?pagina=<%=intpagina + 1%>" style="text-decoration: none">
            <font color="#444444">Próxima >></font></a><u><font color="#444444"> 
        
        <% 
END IF
%>
               <%end if%>
        
        </td>
      </tr>

ALIAS, logo quando acesso ele entra com valor 1, que é o certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o CursorLocation pode ter 2 valores, adUseServer e adUseClient, ao usar o adUseServer , o recordset utiliza o cursor fornecido pelo provedor de dados, ja usando o adUseClient permite ao recordset usar o cursordo lado cliente, dependendo do tipo utilizado teremos acesso a certas funcionalidades, para por exemplo usar Find,Sortupdate em batch,etc

 

2 : Modo servidor

3 : Modo cliente (o mais rapido)

 

 

Conexao.CursorLocation = 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu retormar a lógica, pois está ocorrendo um problema: toda vez que clico em próximo ele exibie o mesmo conteudo, não passa para o próximo, sendo assim coloquei o response.write para ver:

 

Veja o codigo:

  <%
              	
              IF rsbusca.EOF then

  Response.write "<i>Não há informações. Busque de uma forma mais detalhada!</i>"
  
  ELSE
oi=  Request.QueryString("pagina")

 IF Request.QueryString("pagina")="" then 

      intpagina=1 
   ELSE
      IF cint(Request.QueryString("pagina"))<1 then
         intpagina=1 
      ELSE
         IF cint(Request.QueryString("pagina"))> rsbusca.PageCount then 
                           intpagina=rsbusca.PageCount 
                           
                           
                            response.write("oi")
         response.write(intpagina)


         ELSE
            intpagina=Request.QueryString("pagina")
         END IF
      END IF
   END IF
END IF

         response.write(intpagina)
rsbusca.AbsolutePage=cint(intpagina)

intrec=0

	
While intrec < rsbusca.PageSize and not rsbusca.EOF   
idnovo=rsbusca("id_noticia")
	
    	%>

Aqui os botões de ir e voltar:

 

 

<%

                 rsbusca.MoveNext
                 
   intrec=intrec+1 

   IF rsbusca.EOF then 
      response.write " " 
   END IF
Wend 

IF not rsbusca.EOF then 
%>
              
 <tr>
        <td width="100%" height="1">
        
        
        <p align="center"><font face="Verdana" style="font-size: 8pt">
            <font color="#444444"><%
IF intpagina > 1 then 
%> </font> 
<a href="entrevistas.asp?pagina=<%=intpagina-1%>" style="text-decoration: none">
<font color="#444444"><< Anterior</font></a><font color="#444444"> |<% 
END IF

IF strcomp(intpagina,rsbusca.PageCount) <> 0 then 
%> </font> 
<a href="entrevistas.asp?pagina=<%=intpagina + 1%>" style="text-decoration: none">
            <font color="#444444">Próxima >></font></a><u><font color="#444444"> 
        
        <% 
END IF
%>
               <%end if%>

O certo é que quando clico em "Próxima" deveria somar mais um e fazer com que o intpagina tenha valor 2 e assim vai, isso? Só que ocorre é que quando eu clico em "Próxima" o intpagina fica valor -1. Observando que Request.QueryString("pagina") tem valor 2, normalmente, então em algum momento o intpagina faz o valor ficar -1 e por isso não passa a paginação para próxima, não?

 

Estranho porque ele não muda de valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se naun esta keyset e tb o valor do cachesize

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz Response.Write rsbusca.PageCount e ele imprime o valor -1

 

Por isso que nessa linha: intpagina=rsbusca.PageCount o intpagina fica com valor -1, em vez de 2, já que é próximo, por que?

 

 

 

verifique se naun esta keyset e tb o valor do cachesize

----

verificar o que especificamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta usando o recordcount ?

o k ajuda tb é você pegar uma paginacao ok no lab. de script e comparar a logica, para ver se esta tudo correta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha conexão:

 

set conexao = Server.createobject("adodb.connection")

conexao.Open "DRIVER={SQL Server};SERVER=MARCELO-SOUMLJR;DATABASE=me;Uid=sa;PWD=mar0"

 

SQL = "SELECT * FROM entrevistas INNER JOIN entrevistasfotos ON entrevistas.codigo = entrevistasfotos.id order by entrevistas.codigo desc "

set rsbusca = Conexao.execute(SQL)

 

Mas, essa pagina roda em dois sites meu com access, só esse com SQL Server que dar esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual versao da SP do SQLServer

e qual erro é gerado agora,numero

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual versao da SP do SQLServer

e qual erro é gerado agora,numero

 

ASP 3, sql server 2000 o erro é aquele de ele ficar com valor -1 quando clica em proximo, pois proximo soma mais 1 e voltar diminuir 1, é assim nos outros sites, como falei acima. Mas, no access e no mysql roda normal, nuns sites que ja coloquei aqui, mas nesse sql server não. Estranho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta corretamente atualizado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que ele não roda com SQL Server? COnhece alguma paginação de exemplo usando o SQL Server? Pois esses foram com Access, quem sabe deve ser isso, algo no PageCount dar problema no SQL ou conexão dele. Não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como está a parte que define o recordset? com todas as propriedades dele usadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que o problema seja:

estar atribuindo a página ao recordset depois de abrir o recordset, isso tem que ser feito antes

não estar colocando as propriedades corretar do recordset quando é aberto

 

exemplo de uso:

				Set rs=	Server.CreateObject("ADODB.RecordSet")
				rs.PageSize	=	5
				rs.CacheSize	=	5
				rs.Open sql, conexao, 3, 1
				
				If Not rs.Eof Then
paginaAtual = cint(request("pagina"))
if paginaAtual > rs.PageCount Or paginaAtual = 1 < 1 then
paginaAtual = 1
end if

					rs.AbsolutePage = paginaAtual
					i = 0
					Do While (Not(rsTreinamento.Eof)) And (i < 5)
						i = i + 1
response.write rs(0) & "<br>"
						rs.MoveNext()
					Loop
'aqui você monta o loop pra criar os links de paginação conforme quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi que falha ver no meu código, se uso os outros assim. Como ela roda depois que abre o recordset? Veja:

 

<!--#include file="conexao_dados.asp"-->
<% 

dim conexao
Call abre_conexao

Set rsbusca = Server.CreateObject("adodb.recordset")


SQL = "SELECT * FROM entrevistas INNER JOIN entrevistasfotos ON entrevistas.codigo = entrevistasfotos.id order by entrevistas.codigo desc" 
set rsbusca = Conexao.execute(SQL)
rsbusca.PageSize = 2
%>

 <%
            	
              	
              IF rsbusca.EOF then

      Response.Write("<font color=""#FFFFFF"">Não há informações cadastradas.</font>")
  
  ELSE
 IF Request("pagina")="" then 
      intpagina=1 
   ELSE
      IF cint(Request("pagina"))<1 then
         intpagina=1 
      ELSE
         IF cint(Request("pagina"))> rsbusca.PageCount then 
            intpagina=rsbusca.PageCount 
         ELSE
            intpagina=Request("pagina")
         END IF
      END IF
   END IF
END IF

rsbusca.AbsolutePage=intpagina

intrec=0

	
While intrec < rsbusca.PageSize and not rsbusca.EOF   
      vid=       rsbusca("id")
                     
           
       %>

aqui fica conteúdo

 

<%
              

                 rsbusca.MoveNext
                 

   intrec=intrec+1 

   IF rsbusca.EOF then 
      response.write " " 
   END IF
Wend 

IF not rsbusca.EOF then 
       
             
%>
<tr>
        <td width="100%" height="1">
        
        
        <p align="center"><font face="Verdana" style="font-size: 8pt">
            <font color="#444444"><%
IF intpagina > 1 then 
%> </font> 
<a href="entrevistas.asp?pagina=<%=intpagina-1%>" style="text-decoration: none">
<font color="#444444"><< Anterior</font></a><font color="#444444"> |<% 
END IF

IF strcomp(intpagina,rsbusca.PageCount) <> 0 then 
%> </font> 
<a href="entrevistas.asp?pagina=<%=intpagina + 1%>" style="text-decoration: none">
            <font color="#444444">Próxima >></font></a><u><font color="#444444"> 
        
        <% 
END IF
%>
               <%end if%>

Onde ver o erro aí?

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa outro code de paginacao para ver

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.