Ir para conteúdo

POWERED BY:

Arquivado

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

RF programação

[Resolvido] Paginação com BETWEEN

Recommended Posts

Pessoal, estou com um problema no meu código ASP, a paginação não funciona junto com o parâmetro BETWEEN de comparação, só carrega o primeiro link.

 

set rs = conn.execute ("SELECT * FROM tabela WHERE NOME like '%"+XXXPalavra+"%' and DATA BETWEEN '"& dteInicial &"' and '"& dteFinal &"' ORDER BY NOME ASC")

 

Obs:. Se eu tirar a parte sublinhada, funciona o código.. http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

 

Segue o código completo:

<%
Set conn = CreateObject("ADODB.Connection")
abrir ="Driver={MySQL ODBC 3.51 Driver}; SERVER=xxxx; DATABASE=xxxxx; UID=xxxx; PWD=xxxx;"
conn.open abrir
%>
<%
Session.LCID = 1046
XXXPalavra = request.form("Palavra")
      dim dteInicial
      dteInicial = Request.Form("txtDataInicial")
      dteInicial = Year(dteInicial) & "-" & Month(dteInicial) & "-" & Day(dteInicial)

      dim dteFinal
      dteFinal = Request.Form("txtDataFinal")
      dteFinal = Year(dteFinal) & "-" & Month(dteFinal) & "-" & Day(dteFinal)%>

<%
Set rs = Server.CreateObject("ADODB.Recordset")
Const numpag=5 'quantidade por pagina
Conn.CursorLocation=3 'AdUseClient
intCurrPage=cint(Request.QueryString("CurrPage"))
if intCurrPage=0 then intCurrPage=1

'MEU SELECT COM PROBLEMA ***************************************
set rs = conn.execute ("SELECT * FROM tabela WHERE NOME like '%"+XXXPalavra+"%' and DATA BETWEEN '"& dteInicial &"' and '"& dteFinal &"' ORDER BY NOME ASC")
IF rs.EOF then
Response.Write "<div align=""center"" class=""TextoNegritoCinzaEscuro"">NENHUMA COBERTURA CADASTRADA</span></div>"
else
rs.PageSize=numpag
rs.AbsolutePage=intCurrPage
end if
a=0
i=0
while a < numpag and not rs.EOF
a=a+1
i=i+1

'Conteúdo************************************************************
%>

<TD bgcolor="#D3D3D3" width="370">
<font face="Verdana" size="2" color="#000000">
<% =rs("NOME") %>
<% NOME=rs("NOME") %>
</font>
</TD>

<%
Rs.MoveNext()
Wend
%>
<div style="float:left;" class="TextoPreto2"><b>Páginas:</b>
<%
for a = 1 to rs.PageCount
if a <> intCurrPage then
Response.Write "<a href='"&pagina&"?Currpage=" & a & "'>" & a & "</a> "
else
Response.Write "<span class=""TextoPreto2""><b>[ "& a & " ] </b></span>"
end if
next
%>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funciona exatamente porque ?

 

Gera erro de programação, ou a paginação não encontra os resultados corretos ?

 

Antes de tacar a mão no código, eu costumo de praxe verificar o conteudo das váriaveis que estão dentro do comando SQL..

Neste seu caso, eu verificaria primeiro, se as variaveis dteinicial e dtefinal estão com os valores corretos... e possivelmente, converteria para os respectivos tipos.. ex: se for numero.. converte a variavel pra numero.. se for string.. pra texto.. de tal forma a otimizar o resultado da SQL como um todo!

 

Abraços

 

dark0

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se gerar algum numero de erro, e poste o code, para ver como esta, e olha um exemplo simples

<!--#include file="conn/conexao1.asp"--> 
<% call abreconexao
			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM login Where codigo between "&var1&" AND "&var2&""
  rs.open SQL,conexao,1,3
   %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A página 1 funciona, as páginas 2,3,4 ... dá a msg de erro amigável da minha pág. (NENHUMA COBERTURA CADASTRADA), não acha os resultados seguintes apesar de criar os links.

 

ah! Eu já usava as variáveis dteinicial e dtefinal nas buscas e funcionava perfeitamente... mas precisei por uma paginação, aí começou o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem ótimos exemplos de paginacaun no forum...

verifique o formato das datas Para fazer uma comparação

 

'crio a conexao%>
 <!--#include file="conn/conexao1.asp"--> 
<% call abreconexao
			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM login Where codigo between "&var1&" AND "&var2&""
  rs.open SQL,conexao,1,3
   %>
neste exemplo acima var1 e var2 saun numericos

 

var1=33

var2=40

Compartilhar este post


Link para o post
Compartilhar em outros sites

desabilite a opção nas configurações avançadas de seu navegador.. onde diz.. "mostrar mensagens de erro http amigaveis.."

 

assim você verá o erro real..

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.