Ir para conteúdo
Fórum Script Brasil
  • 0

Erra Na Paginação (no Rs)


DELPHI-Man32

Pergunta

a paginação na hora da pesquisa funciona, gera todas as paginas e links numerados para elas, mas depois não passa para as proximas pagina quando clicamos no link para proxima.

da erro no RS.

ADODB.Recordset (0x800A0BB9)
Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.
/psd/modelo6/jacundaonline/resultado.asp, line 295
eu to usando dois tipos de pesquisa no mesmo script. completo com 3 campos e simples so com 1 campo. gerando um sql para cada de acordo com a escolha do ususario.
<%
response.buffer = true

NomeUser     = Request.form("nome")
CityUser     = Request.form("cidade")
Estado     = Request.form("estado")
TIPO_P     

= Request.form("tipo")

'Variáveis passados pelo link informando os valores da paginação
'Pagina atual e quantidade de registros mostrados
reg = request.QueryString("reg")

Select Case (TIPO_P)
Case "tudo"
sqlpag = "select nome, id, foto from cadastro where nome = '"& NomeUser &"' and cidade = '"& CityUser &"' and estado ='"& Estado &"' order by id desc"

Case "sonome"
sqlpag = "select nome, id, foto from cadastro where nome like '%"& NomeUser &"%' order by id desc"
end Select

%>
esse cod a em cima pega os valores enviados pelo form e gera a sql correta.
<!--TABELA DA PAGINAÇAO-->
<%
'---------------------------------------------------------------------
'Criando o sql e abrindo o objeto RS na conexao do banco de dados
'---------------------------------------------------------------------
'criando objeto recordset para manipular os dados do banco
Set rspag = Server.CreateObject("adodb.recordset")
'---------------------------------------------------------------------

'Definido a quantidade de registros por página
rspag.PageSize = 1 

'Se for o inicio da contagem, ou seja, reg = 0
'coloca "reg" com o mesmo valor do RS.pagesize
if reg = "" then
reg = rspag.pageSize
end if

rspag.Open sqlpag, Conex, 3,3
Totalreg = rspag.RecordCount

'Verificando exceções no pagina
IF rspag.EOF then 
    Mensagem =  "nenhum registro encontrado"
   'paramos o programa
   Response.End 
ELSE
'Definindo em qual pagina o visitante está
IF Request.QueryString("pagina")= "" then 
intpagina = 1 
ELSE
'Se a pagina atual for menor que 1, então a pagina será 1
IF cint(Request.QueryString("pagina")) < 1 then
intpagina = 1 
ELSE
'Se a pagina atual for maior que o numero de paginas do 
'RS então a pagina atual será igual a numero total de paginas(ultima)
IF cint(Request.QueryString("pagina")) > rspag.PageCount then 
intpagina = rspag.PageCount 
ELSE
'caso contrário a pagina atual será aquela enviado pelo parametro
intpagina = Request.QueryString("pagina")
'Fim das verificações de exceções
            END IF
        END IF
    END IF
END IF
'---------------------------------------------------------------------
'Usamos a propriedade AbsolutePage para dizer ao RS que página ele esta 
rspag.AbsolutePage = intpagina
'---------------------------------------------------------------------
'Inicia o contador que vai controlar os registros mostrados
contador = 0
'---------------------------------------------------------------------
'Verifica se é a ultima página a ser mostrada para igualar os valores mostrados
'dos registros. Mostrando todos do total encontrado.
IF cint(Request.QueryString("pagina")) = rspag.PageCount then 
reg = Total
end if
%>
<table border="0" width="414" id="table17" height="193" cellspacing="0" cellpadding="0">
    <tr>
        <td valign="top">
        
<% While contador < rspag.PageSize and not rspag.EOF %>
<a href="profile.asp?id=<%=rspag("id")%>">
<img src="go/fotos/<%=rspag("foto")%>" alt="<%=UCase(rspag("nome"))%>" width="66" height="66"></a>
<%
'Passa o ponteiro do RS para o próximo registro até completrar a quantidade por página
rspag.MoveNext
'---------------------------------------------------------------------
'Acrescenta 1 ao contador
contador = contador + 1 
'---------------------------------------------------------------------
Wend
%>
        </td>
    </tr>
    <tr>
        <td valign="top" height="22">
        
<p align="center">
<%
'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”. 
IF intpagina > 1 then 
%>
<a href = "resultado.asp?reg=<%= reg - rspag.pageSize %>&pagina=<%= intpagina - 1%>"><< Anterior</a> | 
<% 
END IF
'---------------------------------------------------------------------
'Loop para mostrar os numeros de paginas e o link para elas
'QR é uma variável para sabermos quantos registros estão sendo mostrados
'do total encontrado.
QR = 0
for pag = 1 to rspag.pagecount
QR = rspag.PageSize + QR
%>
<a href = "resultado.asp?reg=<%= QR %>&pagina=<%= pag %>"><b> <%= pag %> </b></a>
<%
next
'---------------------------------------------------------------------
'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página 
IF strcomp(intpagina, rspag.PageCount) <> 0 then 
%> 
| <a href="resultado.asp?reg=<%= reg + rspag.pageSize %>&pagina=<%= intpagina + 1%>">Próxima >></a> 
<% 
END IF
%>
</td>
    </tr>
</table>
<!--FIM DA TABELA DE PAGINAÇÃO-->

esse e a paginação que fiz.

obs. Na hora que faço a pesquisa na primeiro vez, ele gera o resultado certinho, mas quando clico na 'proxima' pagina ele gera o erro!

abs, VAGNER

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...