Ir para conteúdo

POWERED BY:

Arquivado

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

hunger

erro em paginação

Recommended Posts

ola comunidade...

 

estava com a página funcionando direitinho, mas agora q fui colocar paginação deu o seguinte erro:

 

 

ADODB.Recordset error '800a0cb3'

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

 

/funcionarios/teste_aniv_mes.asp, line 54

 

 

Não sei o que é.... quem tiver sugestões.... agradeço!

 

O código da página está abaixo, e a linha 54 indicada com ****

 

Obdo!

 

 

ASP [/tr][tr]

<%@LANGUAGE="VBSCRIPT"%>

 

<%

'Aqui Declaramos a Varivel Mes

Dim Mes

Mes = Month(Date)

%>

 

 

 

 

<div align="justify">

<p align="center"> <strong><font color="#336699" size="3" face="Trebuchet MS">Aniversariantes

do Mês </font></strong>

<p align="center"

<table width="550" align="left" cellpadding="0" cellspacing="0">

<tr>

<td> </td>

</tr>

<%

'Conexão com o banco de dados - O Local configurado em Conexao.Open deve ser configurado com o local do banco de dados

set Conexao = Server.CreateObject("ADODB.Connection")

Conexao.Open "DBQ=e:\home\dad\dados\bdfuncionarios.mdb;Driver={Microsoft Access Driver (*.mdb)};"

Set RS = Server.CreateObject("ADODB.RecordSet")

SQL = "SELECT * FROM Funcionarios Where MES_NASC =" & Mes & " Order By DIA_NASC"

Set RS = Conexao.execute(SQL)

 

RS.PageSize = 5 'quantidade de registros por página. Você pode alterar sem conforme precise.

 

'Vamos agora verificar exceções do tipo “fim de arquivo” (EOF), se a página atual é menor

'que zero, se é maior que o número total de páginas, etc.

IF RS.EOF then

Response.Write "Não há aniversariantes este mês."

Response.End 'paramos o programa

ELSE

'Definindo 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"))> RS.PageCount then

intpagina=RS.PageCount

ELSE

intpagina=Request.QueryString("pagina")

END IF

END IF

END IF

END IF

'Fim das verificações de exceções

 

'Usamos a propriedade AbsolutePage para dizer ao RS que página ele esta

RS.AbsolutePage=intpagina ******************************************

 

 

'Aqui realizo um Loop com uma Variável que ira contar quantos registros foram exibidos

'Poderia usar também RecordCount para esta Função

Contar = 0

Do While Not RS.EOF

Contar = Contar + 1

%>

<tr>

<%

if (RS("FOTO")) <> "" then

%>

<td> <p><img src="upload/<%=(RS("FOTO"))%>" width="100" height="133" hspace="2" vspace="2" border="1" align="left">

<% end if %>

<strong><font color="#336699" size="3" face="Trebuchet MS"><%=(RS("NOME"))%></font></strong></p>

<p class="texto"><strong>Data de Nascimento:</strong> <%=(RS("DIA_NASC"))%>/<%=(RS("MES_NASC"))%>/<%=(RS("ANO_NASC"))%></p>

<p class="texto"><strong>Função:</strong> <%=(RS("FUNCAO"))%></p>

<p class="texto"><strong>Setor:</strong> <%=(RS("SETOR"))%></p>

<p></p>

<p>

<hr align="left" width="100%" noshade>

</p>

</td>

</tr>

<%

RS.MoveNext

Loop

%>

<%

'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”.

IF intpagina > 1 then

%>

<a href="lista.asp?pagina=<%=intpagina-1%>">[ Anterior

]</a>

<%

END IF

 

'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página

IF strcomp(intpagina,RS.PageCount) <> 0 then

%>

<a href="lista.asp?pagina=<%=intpagina + 1%>">[ Próxima

]</a>

<%

END IF

%>

<%

RS.Close()

Set RS = Nothing

%>

</table>

</p>

</div>

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta colocar nos locais onde temRequest.QueryString("pagina")o seguinteCINT(Request.QueryString("pagina"))espero que resolva

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenat abrir seu RS assimRS.open SQL, Conexao,3,3ao inves de Set RS = Conexao.execute(SQL)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui:

Set RS = Server.CreateObject("ADODB.RecordSet")

SQL = "SELECT * FROM Funcionarios Where MES_NASC =" & Mes & " Order By DIA_NASC"

Set RS = Conexao.execute(SQL)

[/tr]
Primeiro você cria o ADODB.RecordSet depois destrói ele criando um RecordSet "comum" que não dá suporte a paginação e algumas outras coisas, tente assim:
Set RS = Server.CreateObject("ADODB.RecordSet")

SQL = "SELECT * FROM Funcionarios Where MES_NASC =" & Mes & " Order By DIA_NASC"

RS.open SQL,conexao,3,3

[/tr]

 

Corrigi um errinho aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa...

 

fiz o q pediram, mas agora deu outro erro:

 

 

 

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

 

/funcionarios/teste_aniv_mes.asp, line 26

 

 

 

a linha 26 é justamente a do

 

ASP [/tr][tr]RS.open SQL,conexao,3,3[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, usa essa paginação abaixo, funciona em MySQL, Access e SQL Server

 

<%sqlRs = "SELECT COUNT(QUALQUER_CAMPO) AS nrecords FROM TABELA"sql = "SUA INSTRUÇÃO SQL"'lembrando q o mesmo WHERE q tiver na variável 'sql' terá q estar na variável 'sqlRs''faz a contagem de registrosset rsMax = Server.CreateObject("ADODB.RecordSet")rsMax.Open sqlRs, suaConexao	nrecords = rsMax("nrecords")rsMax.Closeset rsMax = nothing'identifica a pagina atualif request.QueryString("pagina")<>"" then	pagina = request.QueryString("pagina")end if'nº de registros por páginanpag = 3if pagina = "" then	pagina = 1end ifnumreg = npag * (pagina - 1)set rs = suaConexao.Execute(sql)if NOT rs.EOF then	resto = nrecords mod npag	if resto > 0 then  paginas = Int(nrecords / npag) + 1	else  paginas = nrecords / npag	end if		if numreg > 0 then  for LinkTemp = 1 to numreg 	 if rs.EOF = false then rs.MoveNext  next	end if	regatual = 1	While NOT rs.EOF AND regatual <= npag  .... seus comandos  rs.MoveNext  numreg = numreg + 1  regatual = regatual + 1	Wendelse	response.write "Nada encontrado!!"end ifrs.Closeset rs = nothingsuaConexao.Closeset suaConexao = nothing'aqui faz a paginação... LINKSif paginas > 1 then	response.write "<p align='center'>"	if Int(pagina) > 1 then  response.write "<a href='"&Request.ServerVariables("SCRIPT_NAME")&"?pagina="&pagina-1&"' class='menupag'>< anterior</a>   "	end if	for LinkTemp = 1 to paginas  if Linktemp = Int(pagina) then 	 response.write "<span class='PaginaAtual'>"&pagina&"</span>   "  else 	 response.write "<a href='"&Request.ServerVariables("SCRIPT_NAME")&"?pagina="&Linktemp&"' class='menupag'>"&LinkTemp&"</a>   "  end if	next	if Int(pagina) < Int(paginas) then  response.write "<a href='"&Request.ServerVariables("SCRIPT_NAME")&"?pagina="&pagina+1&"' class='menupag'>próximo ></a>"	end if	response.write "</p>"end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu rOcKLoCo, vou guardar pro proximo.... pq to meio na correria pra entregar esse agora.... nao da pra começar de novo. ainda mais eu q nao entendo "lhufas"

Compartilhar este post


Link para o post
Compartilhar em outros sites

só q nao está obedendo o limite de registros por página. eu mandei q fossem 3, e até 2, mas mesmo assim ele mostra todos os registros.... ha alguma coisa errada (visivel) no codigo?!esta faltando algo q diga q enquanto nao for EOF, tem q usar o RS.PageSizemas nao sei como e onde...rs só sei o q...

Compartilhar este post


Link para o post
Compartilhar em outros sites

muda Do While Not RS.EOFpor Do While Not RS.EOF AND Contar <= RS.PageSize

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!!! valeu!po, valeu, nao tinha visto q você postou ae.... eu coloquei: Do While Contar < RS.PageSize and not RS.EOFno fim da na mesma ne!obgd.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[asp]<%registros = 10pagina = Request.QueryString("pagina")If pagina = "" Thenpagina = 1End If'Aqui Declaramos a Varivel MesDim MesMes = Month(Date)'Conexão com o banco de dados - O Local configurado em Conexao.Open deve ser configurado com o local do banco de dados set Conexao = Server.CreateObject("ADODB.Connection")'mude o caminho abaixo <<<<<<<<<<<<<<<<< Conexao.Open "DBQ=C:\C\ASP\teste\teste.mdb;Driver={Microsoft Access Driver (*.mdb)};" Set bd = Server.CreateObject("ADODB.RecordSet") set bd.ActiveConnection = Conexao bd.CursorType = 3 bd.PageSize = registrosSQL = "SELECT * FROM Funcionarios"bd.Open SQLIf bd.EOF ThenResponse.Write "Nenhum registro encontrado"Elsebd.AbsolutePage = pagina%><table width="80%" cellspacing ="0" cellpadding ="0" style="border-collapse: collapse" bordercolor="#111111"> <tr> <td valign="top" bgcolor="#000080" align="left"><b> <font color="#FFFFFF" face="Tahoma" size="2">Cod</font></b></td> <td valign="top" bgcolor="#000080" align="left"><b> <font color="#FFFFFF" face="Tahoma" size="2">Nome</font></b></td> <td valign="top" bgcolor="#000080" align="left"><b> <font color="#FFFFFF" face="Tahoma" size="2">Dia</font></b></td> <td valign="top" bgcolor="#000080" align="left"><b> <font color="#FFFFFF" face="Tahoma" size="2">Mes</font></b></td> <td valign="top" bgcolor="#000080" align="left"><b> <font color="#FFFFFF" face="Tahoma" size="2">Ano</font></b></td> </tr> <%While Not bd.EOF AND x < bd.PageSizex = x + 1 %> <tr> <td valign="top" bgcolor="#CCCCCC"><%=bd("COD")%></td> <td valign="top" bgcolor="#CCCCCC"><%=bd("Nome")%></td> <td valign="top" bgcolor="#CCCCCC"><%=bd("Dia")%></td> <td valign="top" bgcolor="#CCCCCC"><%=bd("Mes")%></td> <td valign="top" bgcolor="#CCCCCC"><%=bd("Ano")%></td> </tr><% bd.MoveNextWendanterior = pagina - 1proxima = pagina + 1ultima = bd.PageCountprimeira = 1ultm2 = FormatNumber(bd.PageCount - 1,0)If pagina <> 1 ThenResponse.Write "<b><font face='tahoma' size='1'>« <a href=teste.asp?pagina="&primeira&">Primeira Página</a></b> "End IfIf pagina > 1 AND pagina <> 2 ThenResponse.Write "<b><font face='tahoma' size='1'>[<a href=teste.asp?pagina="&anterior - 1&">"&anterior - 1&"</a> ]</b> "End IfIf pagina > 1 ThenResponse.Write "<b><font face='tahoma' size='1'>[ <a href=teste.asp?pagina="&anterior&">"&anterior&"</a> ]</b> "End IfResponse.Write "<b><font face='tahoma' size='1'>[ "&pagina&" ]</b> "If Not bd.EOF ThenResponse.Write "<b><font face='tahoma' size='1'>[ <a href=teste.asp?pagina="&proxima&">"&proxima&"</a> ]</b> "End IfIf Not bd.EOF AND pagina <> ultima AND pagina <> ultm2 ThenResponse.Write "<b><font face='tahoma' size='1'>[ <a href=teste.asp?pagina="&proxima + 1&">"&proxima + 1&"</a> ]</b> "End IfIf Not bd.EOF ThenResponse.Write "<b><font face='tahoma' size='1'><a href=teste.asp?pagina="&ultima&">Última Página</a> »</b> "End Ifbd.CloseSet bd = NothingEnd If %>[asp]tenta oq o mario disse.. se não der certo tenta este exemplo que te passei só que paginado

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.