
Bof Ou Eof São Verdadeiros, Ou O Registro Atual Foi Excluído
Started By William M. Rodrigues, 15/01/2008, 15:10
7 replies to this topic
#1
Posted 15/01/2008, 15:10
Ja visitei varios foruns, encontrei um registro aqui tratando deste assunto porem, nao me ajudou.
possuo uma pagina que funciona assim:
pagina index, exibe meus registros que estao amarrados a um determinado setor. cada registro possui um setor e um setor pode possuir varios registros. O erro esta acontecendo quando clico num determinado setor que nao possui nenhum registro, ja tentei varios ifs e loops. o ultimo que tentei ficou assim:
na pagina Setor.asp tem um comando SQL assim:
SetorAtual = (Request.QueryString("Setor1"))
strDic = "SELECT * "
strDic = strDic & "FROM TbDicionario "
strDic = strDic & "INNER JOIN TbSetor "
strDic = strDic & "On TbDicionario.IdSetor = TbSetor.IdSetor "
strDic = strDic & "WHERE tbDicionario.IdSetor=" & SetorAtual & " "
strDic = strDic & "Order By TbDicionario.Titulo asc "
SET rsDic = conexaodb.Execute(strDic)
e no corpo da pagina tem:
<%if rsDic.eof then%>
<td bgcolor="#ffffff" width="10%" align="left">Não possui nenhum registro!</td>
<%
else
Do until rsDic.eof
TpResp = rsDic.Fields("Solucao")
%>
<td bgcolor="#ffffff" width="70%" align="left"><p class="menu"><b><a href="detalhes.asp?detalhe1=<% = rsDic.Fields("IdDic") %>" class="menu"><% = rsDic.Fields("Titulo") %></a></b></p></td>
<td bgcolor="#ffffff" width="15%" align="left"><p class="menu"><b><a href="detalhes.asp?detalhe1=<% = rsDic.Fields("IdDic") %>" class="menu"><% = rsDic.Fields("Setor") %></a></b></p></td>
<% IF (TpResp ="") then %>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#0033FF">Resp</font></b></p></td>
<% else %>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#FF0000">ok</font></b></p></td>
<% End IF %>
<td width="5%" height="20"><a href="inserir.asp?id=<%=RsDic("IDDic")%>"><img src="Altera.gif" border="0" alt="Alterar Registro"></a></font></td>
</tr>
<%
rsDic.movenext
loop
end if
%>
Erro que da e o famoso:
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.
/rosa/Setor.a
possuo uma pagina que funciona assim:
pagina index, exibe meus registros que estao amarrados a um determinado setor. cada registro possui um setor e um setor pode possuir varios registros. O erro esta acontecendo quando clico num determinado setor que nao possui nenhum registro, ja tentei varios ifs e loops. o ultimo que tentei ficou assim:
na pagina Setor.asp tem um comando SQL assim:
SetorAtual = (Request.QueryString("Setor1"))
strDic = "SELECT * "
strDic = strDic & "FROM TbDicionario "
strDic = strDic & "INNER JOIN TbSetor "
strDic = strDic & "On TbDicionario.IdSetor = TbSetor.IdSetor "
strDic = strDic & "WHERE tbDicionario.IdSetor=" & SetorAtual & " "
strDic = strDic & "Order By TbDicionario.Titulo asc "
SET rsDic = conexaodb.Execute(strDic)
e no corpo da pagina tem:
<%if rsDic.eof then%>
<td bgcolor="#ffffff" width="10%" align="left">Não possui nenhum registro!</td>
<%
else
Do until rsDic.eof
TpResp = rsDic.Fields("Solucao")
%>
<td bgcolor="#ffffff" width="70%" align="left"><p class="menu"><b><a href="detalhes.asp?detalhe1=<% = rsDic.Fields("IdDic") %>" class="menu"><% = rsDic.Fields("Titulo") %></a></b></p></td>
<td bgcolor="#ffffff" width="15%" align="left"><p class="menu"><b><a href="detalhes.asp?detalhe1=<% = rsDic.Fields("IdDic") %>" class="menu"><% = rsDic.Fields("Setor") %></a></b></p></td>
<% IF (TpResp ="") then %>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#0033FF">Resp</font></b></p></td>
<% else %>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#FF0000">ok</font></b></p></td>
<% End IF %>
<td width="5%" height="20"><a href="inserir.asp?id=<%=RsDic("IDDic")%>"><img src="Altera.gif" border="0" alt="Alterar Registro"></a></font></td>
</tr>
<%
rsDic.movenext
loop
end if
%>
Erro que da e o famoso:
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.
/rosa/Setor.a
#2
Posted 15/01/2008, 15:18
Já tentou com DO WHILE invez de DO UNTIL.
O comportamento dos 2 loops são distintos.
O comportamento dos 2 loops são distintos.
------
Mero mortal!
Mero mortal!
#3
Posted 15/01/2008, 15:32
Já tentou com DO WHILE invez de DO UNTIL.
O comportamento dos 2 loops são distintos.
Ja tentei cara assim:
<%if rsDic.eof then%>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#FF0000">Não possui nenhum registro!</font></b></p></td>
<%else%>
<%
Do WHILE Not rsDic.eof
TpResp = rsDic.Fields("Solucao")
%>
<td bgcolor="#ffffff" width="70%" align="left"><p class="menu"><b><a href="detalhes.asp?detalhe1=<% = rsDic.Fields("IdDic") %>" class="menu"><% = rsDic.Fields("Titulo") %></a></b></p></td>
<td bgcolor="#ffffff" width="15%" align="left"><p class="menu"><b><a href="detalhes.asp?detalhe1=<% = rsDic.Fields("IdDic") %>" class="menu"><% = rsDic.Fields("Setor") %></a></b></p></td>
<% IF (TpResp ="") then %>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#0033FF">Resp</font></b></p></td>
<% else %>
<td bgcolor="#ffffff" width="10%" align="left"><p class="ft8"><b><font color="#FF0000">ok</font></b></p></td>
<% End IF %>
<td width="5%" height="20"><a href="inserir.asp?id=<%=RsDic("IDDic")%>"><img src="Altera.gif" border="0" alt="Alterar Registro"></a></font></td>
</tr>
<%
rsDic.movenext
loop
end if
%>
e nada veio a mesma mensagem
#4
Posted 15/01/2008, 15:39
Muito estranho esse comportamento. 
O comando SQL esta sendo montado corretamente? Já deu um response.write para ver se esta tudo ok?

O comando SQL esta sendo montado corretamente? Já deu um response.write para ver se esta tudo ok?
------
Mero mortal!
Mero mortal!
#5
Posted 15/01/2008, 15:50
Muito estranho esse comportamento.
O comando SQL esta sendo montado corretamente? Já deu um response.write para ver se esta tudo ok?
Ja utilizei este mesmo comando sql para outras paginas funciona sem problemas
#6
Posted 15/01/2008, 16:22
Muito estranho esse comportamento. 
O comando SQL esta sendo montado corretamente? Já deu um response.write para ver se esta tudo ok?

O comando SQL esta sendo montado corretamente? Já deu um response.write para ver se esta tudo ok?
------
Mero mortal!
Mero mortal!
#7
Posted 16/01/2008, 01:12
Esse erro ocorre geralmente quando uma variavel não é verdadeira ou se ela não existe, ou seja o asp tenta fazer uma requisição no bd só que não é retornado um valor válido para montar a página e com isso ocorre este erro, dá uma analizada e veja se os comandos sql do asp estão apontando corretamente para as tabelas no bd, acredito que o erro esteja na extruturação no momento da montagem e não erro no código.
[]'s
Patrique
[]'s
Patrique
#8
Posted 17/01/2008, 09:59
Cara, testa um campo só e veja se ocorre o erro. e se possivel tenta recuprar o valor do campo assim
sem o Fields
<% TpResp = rsDic("Solucao") %>
sem o Fields
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)