Ir para conteúdo

POWERED BY:

Arquivado

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

acfelipesilva

[Resolvido] Paginação ASP com PostgresSQL

Recommended Posts

Boa noite gente,

 

Estou precisando do apoio de vocês para resolver o problema a seguir:

Tenho uma pagina chamada consulta_nompessoa.asp nele carrego uma combobox de clientes e tenho um textbox onde o usuário coloca o nome de um destinatário, bom, até aí tranquilo, quando o usuário clica em enviar, os dados desta pagina sao enviados atraves do metodo post para a pagina resultado_nompessoa_pesquisa3.asp, essa pagina é onde rola a paginação de resultados que não está funcionando, na verdade funciona em partes, pois quando um resultado gera mais de uma pagina, quando tento acessar a segunda pagina aparece um erro. Agora vou postar as paginas abaixo para que vocês possam analisar melhor, minha suspeita e que as variaveis nao ficam armazenadas e quando vou pra segunda pagina o select vem com dados vazios, gerando o erro, bom, isso e o que acho, espero encontrar uma solução com a ajuda de voces, desde já agradeço ao apoio.

 

<% @ LANGUAGE="VBSCRIPT" %>
<%

empresa = request("cbocliente")
tnome = request("txtnome")

cor_linha_selecionada = "gainsboro"
	
'Abrimos a Conexão com o Banco
SET objCmm  = CreateObject("ADODB.Connection")
'Selecionamos todos os Produtos da Tabela
SET obRS2 = server.CreateObject("ADODB.Recordset")

obRS2.CursorLocation = 3

objCmm.open "DRIVER={PostGreSQL ANSI};SERVER=localhost; DATABASE=jr_express;UID=postgres;PWD=postgres; OPTION=3"

sql = "select * from ar where cod_cliente='"&empresa&"' and nom_destinatario ilike '%"&tnome&"%' order by nom_destinatario asc"

'response.Write(sql)

obRS2.Open sql, objCmm

'Definimos o Numero de Paginas com a propriedade "PageSize" do objeto Recordset
obRS2.PageSize = 20
TotalRegistros = obRS2.RecordCount

'Criamos as Validações
if obRS2.eof then
  Response.Write ("Nenhum Registro Encontrado!")
  Response.Redirect("escolha.asp")
  Response.End 
else
  'Definimos em qual pagina o visitante está
  if Request.QueryString("pagina")="" then 
   intpagina = 1
  else
   if cint(Request.QueryString("pagina"))<1 then
	intpagina = 1
   else
if cint(Request.QueryString("pagina"))>obRS2.PageCount then 
  intpagina = obRS2.PageCount
     else
  intpagina = Request.QueryString("pagina")
end if
   end if   
  end if  
    end if
	
%>

<style type="text/css">
<!--
.campo_alerta
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
border: 1px solid black;
background-color: #ffff99;
}
.texto_pagina
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
}

.tabela_formulario
{
width: 100%;
background-color: white;
}

.titulo_campos
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: whitesmoke;
}

.campos_formulario
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: gainsboro;
border: 1px inset;
}

.botao_enviar
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: white;
background-color: gray;
}
-->
</style>

<BODY>
<fieldset>
<legend class="textosleft">Consulta por Nome de Destinatário </legend>
<br>
<TABLE border=0 cellpadding=2 cellspacing=1 class="tabela_formulario">
  <TR class="campos_formulario">
  	<td align="center">Número da AR</td>
  	<td align="center">Destinatário</td>
	<td align="center">Código da AR</td>
	<td align="center">Código Guia</td>
	<td align="center">Bairro</td>
 </tr>
 <%
  'Iniciamos o Loop
  obRS2.AbsolutePage = intpagina
  intrec = 0
  While intrec < obRS2.PageSize and not obRS2.eof 
 %>
 <TR class=texto_pagina onMouseOver="this.style.backgroundColor='<%=cor_linha_selecionada%>';" onMouseOut="this.style.backgroundColor='';">
 <TD style="cursor: hand" title="Mais Detalhes" onClick="self.location='resultado_nompessoa.asp?numar=<%=(obRS2("num_ar").Value)%>&cliente=<%=obRS2("cod_cliente")%>'"><%=obRS2("num_ar").Value %></TD>
  <TD><%=obRS2("nom_destinatario").Value %></TD>
  <TD><%=obRS2("cod_AR").Value %></TD>
  <TD><%=obRS2("cod_guia").Value %></TD>
  <TD><%=obRS2("dsc_bairro_destinatario").Value %></TD>
 </tr>
 <%
  obRS2.MoveNext
  intrec = intrec + 1
  if obRS2.eof then 
    response.write "" 
  end if  
  Wend 
 %>
 <tr bgcolor="#EFEFEF">
  <td colspan="9" align="center" id="Dados"><br>
  <% 
  'Criamos as Validações para a navegação "Anterior" e "Próximo" 
  if intpagina > 1 then 
  %> 
  <a href="resultado_nompessoa_pesquisa3.asp?pagina=<%=intpagina - 1%>&empresa=<%=empresa%>&tnome=<%=tnome%>">Anterior</a>
  <% 
  end if  
  if StrComp(intpagina,obRS2.PageCount)<>0 then 
  %>
  <a href="resultado_nompessoa_pesquisa3.asp?pagina=<%=intpagina + 1%>&empresa=<%=empresa%>&tnome=<%=tnome%>">Próximo</a>
  <%
  end if
  obRS2.close
  Set obRS2 = Nothing
  %>  </td>
  </tr>
</table>
</fieldset>
</body>

Apartir da segunda pagina o erro que da e esse:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

Error while executing the query; ERROR: invalid input syntax for integer: ""

/JrExpressWeb/novos/resultado_nompessoa_pesquisa3.asp, line 22

Compartilhar este post


Link para o post
Compartilhar em outros sites

gera algum numero de erro , se sim, poste tb a linha,

e naun eskça k existem exemplos de paginacaun no forum, pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

altere para obRS2.Open sql, objCmm, 1,3

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se isso resolve

obRS2.AbsolutePage = Clng("0" & intpagina)

 

Caro Jonathan,

 

Tentei fazer como você sugeriu mas nao deu certo, cara, já tô a um tempo batendo cabeça nesse código e sinceramente nao consigo identificar este erro, se quiser posso te mandar as paginas para você analisar melhor...

Desde já agradeçoa a sua ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

gera algum numero de erro , se sim, poste tb a linha,

e naun eskça k existem exemplos de paginacaun no forum, pode te ajudar

 

Caro xanburzum,

 

Desde já agradeço a você a simples vontade de me ajudar, bom sua idéia não deu certo, todavia foi uma boa sacada... porém o problema ainda persiste...

Bom, é como eu disse antes, ele consegue fazer a paginação para a 1 pagina, mas da segunda em diantes da aquele erro que mencionei acima, caso você queria posso enviar pra você os arquivos com os quais trabalho aqui para você analisar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, muito obrigado pela colaboração de todos, fiquei analisando o código e uma sacada do Jonathan me chamou a atenção e então fiz um teste, mexi em nome de variavel, bom, enfim, consegui matar o problema vou postar o código final para que vocÊs possam olhar e ajudar outras pessoas com o mesmo problema.

 

Mexi no loop : obRS2.AbsolutePage = Cint(intpagina)

Mexi na passagem de parametros no rodapá da pagina.

 

Bom, desde já agradeçoa todos!

 

Um abraço,

 

 

<% @ LANGUAGE="VBSCRIPT" %>
<%
varCliente = Request("cbocliente")
varNome = Request("txtnome")

cor_linha_selecionada = "gainsboro"
	
'Abrimos a Conexão com o Banco
SET objCmm  = CreateObject("ADODB.Connection")
'Selecionamos todos os Produtos da Tabela
SET obRS2 = server.CreateObject("ADODB.Recordset")

obRS2.CursorLocation = 3

objCmm.open "DRIVER={PostGreSQL ANSI};SERVER=localhost; DATABASE=jr_express;UID=postgres;PWD=postgres; OPTION=3"

sql = "select * from ar where cod_cliente='" & varCliente & "' and nom_destinatario ilike '%" & varNome & "%' order by nom_destinatario asc"
 
obRS2.Open sql, objCmm

'Definimos o Numero de Paginas com a propriedade "PageSize" do objeto Recordset
obRS2.PageSize = 25
TotalRegistros = obRS2.RecordCount

'Criamos as Validações
if obRS2.eof then
  Response.Write ("Nenhum Registro Encontrado!")
  Response.Redirect("escolha.asp")
  Response.End 
else
  'Definimos em qual pagina o visitante está
  if Request.QueryString("pagina")="" then 
   intpagina = 1
  else
   if cint(Request.QueryString("pagina"))<1 then
	intpagina = 1
   else
if cint(Request.QueryString("pagina"))>obRS2.PageCount then 
  intpagina = obRS2.PageCount
     else
  intpagina = Request.QueryString("pagina")
end if
   end if   
  end if  
    end if
	
%>

<style type="text/css">
<!--
.campo_alerta
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
border: 1px solid black;
background-color: #ffff99;
}
.texto_pagina
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
}

.tabela_formulario
{
width: 100%;
background-color: white;
}

.titulo_campos
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: whitesmoke;
}

.campos_formulario
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: gainsboro;
border: 1px inset;
}

.botao_enviar
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: white;
background-color: gray;
}
-->
</style>

<BODY>
<fieldset>
<legend class="textosleft">Consulta por Nome de Destinatário </legend>
<br>
<TABLE border=0 cellpadding=2 cellspacing=1 class="tabela_formulario">
  <TR class="campos_formulario">
  	<td align="center">Número da AR</td>
  	<td align="center">Destinatário</td>
	<td align="center">Código da AR</td>
	<td align="center">Código Guia</td>
	<td align="center">Bairro</td>
 </tr>
 <%
  'Iniciamos o Loop
  'obRS2.AbsolutePage = Clng("0" & intpagina)
  obRS2.AbsolutePage = Cint(intpagina)
  intrec = 0
  While intrec < obRS2.PageSize and not obRS2.eof 
 %>
 <TR class=texto_pagina onMouseOver="this.style.backgroundColor='<%=cor_linha_selecionada%>';" onMouseOut="this.style.backgroundColor='';">
 <TD style="cursor: hand" title="Mais Detalhes" onClick="self.location='resultado_nompessoa.asp?numar=<%=(obRS2("num_ar").Value)%>&cliente=<%=obRS2("cod_cliente")%>'"><%=obRS2("num_ar").Value %></TD>
  <TD><%=obRS2("nom_destinatario").Value %></TD>
  <TD><%=obRS2("cod_AR").Value %></TD>
  <TD><%=obRS2("cod_guia").Value %></TD>
  <TD><%=obRS2("dsc_bairro_destinatario").Value %></TD>
 </tr>
 <%
  obRS2.MoveNext
  intrec = intrec + 1
  if obRS2.eof then 
    response.write " " 
  end if  
  Wend 
 %>
 <tr bgcolor="#EFEFEF">
  <td colspan="9" align="center" id="Dados"><br>
  <%
  if intpagina > 1 then
  %>
  <a href="resultado_nompessoa_pesquisa.asp?pagina=<%=intpagina - 1%>&cbocliente=<%=varCliente%>&txtnome=<%=varNome%>">Anterior</a>
  <%
  end if
  if StrComp(intpagina,obRS2.PageCount)<>0 then
  %>
  <a href="resultado_nompessoa_pesquisa.asp?pagina=<%=intpagina + 1%>&cbocliente=<%=varCliente%>&txtnome=<%=varNome%>">Próximo</a>
  <%
  end if
  obRS2.close
  Set obRS2 = Nothing
  %>  </td>
  </tr>
</table>
</fieldset>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, parabens, estarei disponibilizando seu code, no laboratorio de script, e kker coisa posat ae...

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.