Marcelo do GBT Postado Janeiro 22, 2010 Denunciar Share Postado Janeiro 22, 2010 Caros, sou novo na programação em asp, mas como já tenho o site pronto, apenas faço algumas alterações.O problema é que esta ocorrendo um erro muito estranho, e não sei como resolver, por isso, peço ajuda a quem poder me ajudar.O erro é o seguinte:Tipo de erro:ADODB.Field (0x80020009)BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual./guia/estatisticas/acessos.asp.o tal acesso.asp é o seguinte:<%mes = request.querystring("mesdb")ano = Year(now)%><style type="text/css"><!--.link { color: #006633; text-decoration: none}--></style><% set conn = createobject("adodb.connection") conn.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("../contador/contador_acessos.mdb") set rs = conn.execute("SELECT * FROM acessos where mesdb= '"&mes&"'") %><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><table width="150" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="218" valign="top"> <table border="0" width="150" bordercolor="#000033"> <tr> <td width="51%" align="left" bgcolor="#CCFFE7" height="15"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Mês: </font></b><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("mesdb")%></font><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"> </font></td> <td width="49%" align="center" bgcolor="#F0FFF8" height="15"><b><font face="Arial, Helvetica, sans-serif" size="1" color="#006633">Paginas Clicadas</font></b></td> </tr> </table><%dia_cat = 1do while not rs.eof %> <table width="150%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="19%"><%If dia_cat = 1 then%> <b>Dia:</b> <% dia_cat = 0 End If%> <%If dia_cat = 0 then%> <%End If%> </td> <td width="19%"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("diadb")%></font> </td> <td width="60%" align="left" bgcolor="#F0FFF8" bordercolor="#000033"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><b><%=rs("hits")%></b></font></td> <td width="2%"> </td> </tr> </table> <% rs.movenext loop rs.close conn.close set rs = nothing set conn = nothing %></td> </tr></table>e o que faz o envio para o contador_acessos.mdb é o seguinte:<%diadb = Day(now) mes = Month(now)anodb = Year(now)id = Day(now)Select case mes case 1 mesdb = "Janeiro" case 2 mesdb = "Fevereiro" case 3 mesdb = "Março" case 4 mesdb = "Abril" case 5 mesdb = "Maio" case 6 mesdb = "Junho" case 7 mesdb = "Julho" case 8 mesdb = "Agosto" case 9 mesdb = "Setembro" case 10 mesdb = "Outubro" case 11 mesdb = "Novembro" case 12 mesdb = "Dezembro"End Select'-------------------------------------------------------------------------------------------------if diadb = "" then diadb = diadb end if 'Conectando com o banco de dados... set conn = createobject("adodb.connection") conn.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("contador/contador_acessos.mdb") set rs = conn.execute("select * from acessos where diadb = '" & diadb & "'") if rs.eof then v = 1 conn.execute "INSERT INTO acessos(id, diadb, mesdb, anodb, hits) VALUES ('"&id&"','"&diadb&"','"&mesdb&"','"&anodb&"',"&v&")"else conn.execute("UPDATE acessos SET hits = hits +1 WHERE id = '" & id & "'")end if 'Fecha as conexões rs.close conn.close set rs = nothing set conn = nothing%>Então o que pode estar acontecendo??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 22, 2010 Denunciar Share Postado Janeiro 22, 2010 Tipo de erro:ADODB.Field (0x80020009)BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.Esse erro ocorre quando o ponteiro do registro da tabela é forçado a ler o registro após o registro final. rs.movenext loop rs.close abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo do GBT Postado Janeiro 23, 2010 Autor Denunciar Share Postado Janeiro 23, 2010 Caro Jhonas,E como devo fazer para corrigir este erro???Por favor ajude-me!Tipo de erro:ADODB.Field (0x80020009)BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.Esse erro ocorre quando o ponteiro do registro da tabela é forçado a ler o registro após o registro final. rs.movenext loop rs.close abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 24, 2010 Denunciar Share Postado Janeiro 24, 2010 E como devo fazer para corrigir este erro???do while not rs.eof %> <table width="150%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="19%"><%If dia_cat = 1 then%> <b>Dia:</b> <% dia_cat = 0 End If%> <%If dia_cat = 0 then%> <%End If%> </td> <td width="19%"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("diadb")%></font> </td> <td width="60%" align="left" bgcolor="#F0FFF8" bordercolor="#000033"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><b><%=rs("hits")%></b></font></td> <td width="2%"> </td> </tr> </table> <% rs.movenext loop rs.close Logo após o < do while not rs.eof > voce deve testar se o fim o arquivo foi encontrado ... se não colocar esse teste para finalizar o loop, uma nova tentativa de ler o registro será comandada pelo while e ocorrerá o erro if rs.eof then rs.close // ou o comando para sair do loop end ifabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo do GBT Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 Caro Jhonas,Eu copie e colei o que voce dise para eu fazer, mas esta dando o mesmo erro, será que voce pode colocar o codigo inteiro para que consiga fazer este negocio rodar?Por favor, me de certinho, pois como falei, sou novo em asp!ObrigadoE como devo fazer para corrigir este erro???do while not rs.eof %> <table width="150%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="19%"><%If dia_cat = 1 then%> <b>Dia:</b> <% dia_cat = 0 End If%> <%If dia_cat = 0 then%> <%End If%> </td> <td width="19%"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("diadb")%></font> </td> <td width="60%" align="left" bgcolor="#F0FFF8" bordercolor="#000033"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><b><%=rs("hits")%></b></font></td> <td width="2%"> </td> </tr> </table> <% rs.movenext loop rs.close Logo após o < do while not rs.eof > voce deve testar se o fim o arquivo foi encontrado ... se não colocar esse teste para finalizar o loop, uma nova tentativa de ler o registro será comandada pelo while e ocorrerá o erro if rs.eof then rs.close // ou o comando para sair do loop end ifabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 29, 2010 Denunciar Share Postado Janeiro 29, 2010 movido pra asp. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 29, 2010 Denunciar Share Postado Janeiro 29, 2010 marcelo, qual a linha do erro?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo do GBT Postado Janeiro 29, 2010 Autor Denunciar Share Postado Janeiro 29, 2010 marcelo, qual a linha do erro??Tipo de erro:ADODB.Field (0x80020009)BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual./guia/estatisticas/acessos.asp.este é o erro, mas ele não indica linha alguma, apenas da o erro! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 29, 2010 Denunciar Share Postado Janeiro 29, 2010 tem certeza, q não diz a linha?? normalmente ele sempre passa o numero da linha em q ocorre o erro.de qualquer forma, olha essa parte do codigo aqui:"SELECT * FROM acessos where mesdb= '"&mes&"'"você tem certeza q ele ta encontrando dados referente ao mes q você ta passando??porque se ele não encontrar, ele vai dar erro mais pra baxo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo do GBT Postado Janeiro 29, 2010 Autor Denunciar Share Postado Janeiro 29, 2010 tem certeza, q não diz a linha?? normalmente ele sempre passa o numero da linha em q ocorre o erro.de qualquer forma, olha essa parte do codigo aqui:"SELECT * FROM acessos where mesdb= '"&mes&"'"você tem certeza q ele ta encontrando dados referente ao mes q você ta passando??porque se ele não encontrar, ele vai dar erro mais pra baxo.Caro Kuroi,Será que não daria para ser mais claro, pois eu não manjo de asp, e voce mandar eu olhar a linha, não significa nada, pois o que preciso, é que me diga exatamente o que tenho que fazer, ou mudar, entende?Agradeço se for mais preciso! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 30, 2010 Denunciar Share Postado Janeiro 30, 2010 então é bom estudar um poco ou falar pro seu cliente q não da pra você fazer isso.como você quer dar continuidade num site em asp sem saber asp??se fosse assim, eu não precisava ter estudado nd a vida intera...de qualquer modo, acho q esse erro pode estar acontecendo por ele não estar encontrando o registro no banco de dados.o q esta sendo passado na querystring?? (a querystring são parametros passados no final do endereco da pagina. por exemplo, olha la em cima no seu navegador o endereco desse tópico. no caso, ?showtopic=146374 é a querystring).tem q estar sendo passada uma querystring referente a um mes q exista no banco de dados.entretanto, depois de abrir o body, adicione a seguinte linha:<% If Not rs.EOF Then %> e antes de fechar o body, adicione a linha: <% End If %>e veja se não para de dar erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo do GBT Postado Janeiro 31, 2010 Autor Denunciar Share Postado Janeiro 31, 2010 então é bom estudar um poco ou falar pro seu cliente q não da pra você fazer isso.como você quer dar continuidade num site em asp sem saber asp??se fosse assim, eu não precisava ter estudado nd a vida intera...de qualquer modo, acho q esse erro pode estar acontecendo por ele não estar encontrando o registro no banco de dados.o q esta sendo passado na querystring?? (a querystring são parametros passados no final do endereco da pagina. por exemplo, olha la em cima no seu navegador o endereco desse tópico. no caso, ?showtopic=146374 é a querystring).tem q estar sendo passada uma querystring referente a um mes q exista no banco de dados.entretanto, depois de abrir o body, adicione a seguinte linha:<% If Not rs.EOF Then %> e antes de fechar o body, adicione a linha: <% End If %>e veja se não para de dar erro.Caro Kuroi,Agradeço sua atenção e presteza, mas não consegui realmente, pois continua dando erros.Mas também vou aceitar seu conselho, e vou devolver o serviço, pois como voce mesmo disse, como posso querer fazer algo sem conhecimento, e como meu conhecimento é outro, não adianta eu querer fazer algo a toque de caixa.Bem, também acho que um forum que só sirva para quem já sabe, não faz muito sentido, pois eu acredito que forum, tem que ser para quem esta inciando, pois quem sabe, não precisa de ajuda, concorda?Muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Marcelo do GBT
Caros, sou novo na programação em asp, mas como já tenho o site pronto, apenas faço algumas alterações.
O problema é que esta ocorrendo um erro muito estranho, e não sei como resolver, por isso, peço ajuda a quem poder me ajudar.
O erro é o seguinte:
Tipo de erro:
ADODB.Field (0x80020009)
BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.
/guia/estatisticas/acessos.asp.
o tal acesso.asp é o seguinte:
<%
mes = request.querystring("mesdb")
ano = Year(now)
%>
<style type="text/css">
<!--
.link { color: #006633; text-decoration: none}
-->
</style>
<%
set conn = createobject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("../contador/contador_acessos.mdb")
set rs = conn.execute("SELECT * FROM acessos where mesdb= '"&mes&"'")
%>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="150" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="218" valign="top">
<table border="0" width="150" bordercolor="#000033">
<tr>
<td width="51%" align="left" bgcolor="#CCFFE7" height="15"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Mês:
</font></b><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("mesdb")%></font><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">
</font></td>
<td width="49%" align="center" bgcolor="#F0FFF8" height="15"><b><font face="Arial, Helvetica, sans-serif" size="1" color="#006633">Paginas
Clicadas</font></b></td>
</tr>
</table>
<%
dia_cat = 1
do while not rs.eof %>
<table width="150%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="19%"><%If dia_cat = 1 then%>
<b>Dia:</b>
<% dia_cat = 0
End If%>
<%If dia_cat = 0 then%>
<%End If%>
</td>
<td width="19%"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><%=rs("diadb")%></font>
</td>
<td width="60%" align="left" bgcolor="#F0FFF8" bordercolor="#000033"><font face="Arial, Helvetica, sans-serif" size="2" color="#006633"><b><%=rs("hits")%></b></font></td>
<td width="2%"> </td>
</tr>
</table>
<%
rs.movenext
loop
rs.close
conn.close
set rs = nothing
set conn = nothing
%>
</td>
</tr>
</table>
e o que faz o envio para o contador_acessos.mdb é o seguinte:
<%
diadb = Day(now)
mes = Month(now)
anodb = Year(now)
id = Day(now)
Select case mes
case 1
mesdb = "Janeiro"
case 2
mesdb = "Fevereiro"
case 3
mesdb = "Março"
case 4
mesdb = "Abril"
case 5
mesdb = "Maio"
case 6
mesdb = "Junho"
case 7
mesdb = "Julho"
case 8
mesdb = "Agosto"
case 9
mesdb = "Setembro"
case 10
mesdb = "Outubro"
case 11
mesdb = "Novembro"
case 12
mesdb = "Dezembro"
End Select
'-------------------------------------------------------------------------------------------------
if diadb = "" then
diadb = diadb
end if
'Conectando com o banco de dados...
set conn = createobject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("contador/contador_acessos.mdb")
set rs = conn.execute("select * from acessos where diadb = '" & diadb & "'")
if rs.eof then
v = 1
conn.execute "INSERT INTO acessos(id, diadb, mesdb, anodb, hits) VALUES ('"&id&"','"&diadb&"','"&mesdb&"','"&anodb&"',"&v&")"
else
conn.execute("UPDATE acessos SET hits = hits +1 WHERE id = '" & id & "'")
end if
'Fecha as conexões
rs.close
conn.close
set rs = nothing
set conn = nothing
%>
Então o que pode estar acontecendo???
Link para o comentário
Compartilhar em outros sites
11 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.