Ir para conteúdo

POWERED BY:

Arquivado

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

Marcus Gemeos

Alguém sabe como resolver esse erro...

Recommended Posts

Olá pessoal,

 

Está dando erro no meu sistema de paginação com o banco de dados SQL Server!

 

ADODB.Recordset error '800a0cb3'

 

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

 

/adm19812006/dados_de_clientes.asp, line 120

 

Referente essa linha:

RS.AbsolutePage=intpagina
Como faço para resolver esse probleminha?

 

Obrigado!

 

Marcus

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez o tipo de recordset (adUser, etc...) não suporte a paginação. Tente ver qual é o melhor tipo de recordset para se trabalhar com paginação de dados.Tente tb, verificar se sua variável intPágina está vindo com valores e se realmente está vindo com um valor do tipo int

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,Eu acho que a segunda opnião é mais válida, por que outras páginas possui o mesmo sistema de paginação e não dar erro algum, vou verificar a minha variavel, qualquer coisa, posto aqui!Obrigadão!Marcus

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,Eu dei uma olhada e comparei com o código da página que tem mesmo sistema e com perfeito funcionamento, não vi diferença nenhuma, só em relação que esta página tem a outra de diferente é as tabelas que são outras! Você acha que isso influencia em alguma coisa?Obrigadão!Marcus

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcus,

Post para nós como você está abrindo o recordset.

Para paginação a maneira que eu recomendo é com Recordset desconectado,

Exemplo

Dim objConnDim objRsDim strSQL'========================='INSTANCIA OBJETOS'=========================Set objConn = Server.CreateObject("ADODB.Connection")Set objRs = Server.CreateObject("ADODB.Recordset")'========================='ABRE CONEXÃO'=========================ObjConn.Open "Conexao"'========================='string SQL'=========================strSQL = "Select * from contatos"'========================='OPÇÕES DO RECORDSET'=========================objRs.CursorLocation = 3 'UseClientobjRs.CursorType = 1 'adOpenKeysetobjRs.LockType = 1 'adLockReadOnlyobjRs.PageSize = 10'========================='ABRE RECORDSET'=========================objRs.Open strSQL,objConn'========================='DESCONECTA RECORDSET'=========================objRs.ActiveConnection = Nothing'========================='DESTROI CONEXÃO'=========================objConn.CloseSet objConn = Nothing....e continua com os dados da paginação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

Não deu certo... :( abaixo segue a página toda que está dando 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.

 

/lista.asp, line 235

 

E percebir que está em outras páginas também... guando o banco de dados possui dados...

 

Código da página:

 

<!--#include file="conexao_dados_SQL.asp"--><%varID = Request.QueryString("id")Session("VarID") = Request.QueryString("id")Set rsLista = Server.CreateObject("adodb.recordset")rsLista.PageSize = 1 'quantidade de registros por página.SQLLista = "SELECT * FROM Produtos Where COD_Categoria =" & varID &" ORDER BY VRL_Unitario ASC"SQLCategorias = "SELECT * FROM Categorias where COD_Categoria =" & varIDSQLLista2 = "SELECT * FROM Produtos Where COD_Categoria =" & varID &" ORDER BY VRL_Unitario DESC"SQLCategorias2 = "SELECT * FROM Categorias where COD_Categoria =" & varIDVarLista = Trim(request.form("Ordem"))VarLista = Replace(VarLista, "'", "")Session("Lista") = VarLista'abre a conexaoCall abre_conexao'executa a instrução SQLSet rsLista=conn.Execute(SQLLista2)Set rsCategorias=conn.Execute(SQLCategorias2)if VarLista = "Menor valor" then'executa a instrução SQLSet rsLista=conn.Execute(SQLLista)Set rsCategorias=conn.Execute(SQLCategorias)VarCat = rsCategorias("Categoria")end ifif VarLista = "Maior valor" then'executa a instrução SQLSet rsLista=conn.Execute(SQLLista2)Set rsCategorias=conn.Execute(SQLCategorias2)VarCat = rsCategorias("Categoria")end ifVarCat = rsCategorias("Categoria")
Continuação...

 

<%   if rsLista.EOF then	  Response.write "<i> Desculpe, não existe nenhum produto cadastrado nesta categoria. Verifique mais tarde!</i>"	  Response.write "<br><i> Agradecemos a sua preferência!</i>"	  Response.End 'paramos o programaelse%>	  <tr>				  <td width="69%" bgcolor="#E2E2E2" align="center">			 				  <p align="left"><b><font face="Verdana" size="2"> Produto</font></b></td>				  <td width="16%" bgcolor="#E2E2E2" align="center">				  <p align="left"><b><font face="Verdana" size="2"> Tipo</font></b></td>				  <td width="15%" bgcolor="#E2E2E2" align="center">				  <p align="left"><b><font face="Verdana" size="2"> Valor</font></b></td>				</tr><%   '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"))> rsLista.PageCount then 			intpagina=rsLista.PageCount 		 ELSE			intpagina=Request.QueryString("pagina")		 END IF	  END IF   END IFEND IF'Fim das verificações de exceções'Usamos a propriedade AbsolutePage para dizer ao rsLista que página ele esta rsLista.AbsolutePage=intpagina' Inicia o contador que vai controlar os registros mostradosintrec=0'Enquanto o contador for menor que a quantidade de registros mostrados ou' não for o final do arquivo While intrec < rsLista.PageSize and not rsLista.EOF    %>	  <tr>				  <td width="69%" align="left"><font face="Verdana" size="2"> <a href="pre_produtos.asp?id=<%=rsLista("Cod_Produto")%>"><u><%=rsLista("Produto")%></u></a></font></td>				  <td width="16%" align="left"><font face="Verdana" size="2"> <%=rsLista("Tipo")%></font></td>				  <td width="15%" align="left"><font face="Verdana" size="2">  R$ <%= FormatNumber(rsLista("VRL_Unitario"),2) %></font></td>				</tr>										<%	  rsLista.MoveNext		 ' Acrescenta +1 ao contador   intrec=intrec+1    'Se for EOF (fim de arquivo), imprimir branco na tela   IF rsLista.EOF then 	  response.write " "    END IF Wend %>	</table>	</td>  </tr>  </table>			  </td>			</tr>  <tr>			  <td width="100%" height="16">			  </td>			</tr>  <tr>	<td width="100%" height="19">	<p align="center">  <tr>	<td width="100%" height="133"><%  'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”. %><%IF intpagina > 1 then 'AND intpagina <> 2 Then%><align="center"><font color="#FFFFFF" size="2" face="Verdana"><span style="background-color: #808080"> <a href="lista2.asp?pagina=<%=intpagina - 1%>"><font color="#FFFFFF"><b>Anterior</b></font></a> </span><% END IF%><%'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página IF strcomp(intpagina,rsLista.PageCount) <> 0 then %> <align="center"><font color="#FFFFFF" size="2" face="Verdana"><span style="background-color: #808080"> <a href="lista2.asp?pagina=<%=intpagina + 1%>"><font color="#FFFFFF"><b>Próxima</b></font></a> </span><% END IF%></td><p align="center"><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">  <tr>	<td width="100%">	<form name="form2" method="GET" action="lista2.asp"><p align="center">	  <select size="1" name="pagina" style="font-family: Verdana; font-size: 10 px; border-style: solid; border-width: 1" OnChange="document.form2.submit()">	  <option selected>Nº da página</option>	  <%	   For i = 1 to rsLista.PageCount	  %>	  <option value="<%=i%>"><%=i%></option>	  <% 	   Next	   %>	  </select></p>   </form>	</td>  </tr></table></font></font><font size="1" face="Verdana"><p align="center">Página: <b><%=intpagina%></b></font><font color="#FFFFFF" size="2" face="Verdana"><p align="center"><font face="Verdana" size="1">Bahia Mercado - Seu mercado 	baiano de vendas e compras - Todos os direitos reservados - 2006®</font></span></font></font></body></html><%'fecha a conexaoCall fecha_conexaoSet rsLista = NothingSet rsCategorias = Nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

 

A solução é essa:

 

Tipo assim?

 

Exemplo:

 

<%set cx = server.CreateObject("ADODB.Connection")cx.CommandTimeout = 3000cx.Open "Provider=sqloledb;Data Source=localhost,1433;Initial Catalog=pubs;User Id=teste;Password=teste;"Set rs = server.CreateObject("ADODB.RecordSet")rs.CursorLocation = 3sql = "select * from authors"rs.Open sql, cxwhile not rs.eof  response.write rs("au_fname") & "<br />"  rs.movenextwendrs.closecx.close%>

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.