Ir para conteúdo
Fórum Script Brasil
  • 0

Bof E Eof


ricardovoigt

Pergunta

<!--#include file="conecta_banco.asp"-->

<% set listar = server.CreateObject("ADODB.Recordset")

listar.open "Select * from socios where mostrar='sim' order by nome asc",conexao

<%dim conta%>

<table border = 0 align="center" cellpadding="2" cellspacing="2" bordercolor="#000000">

<%

do while not listar.eof%>

<%for conta = 1 to contador step 1%>

<% 'aqui vem a tabela com os dados, o for serve para dividir em linhas e colunas.%>

.....

.....

<%if conta mod 2 = 0 then%>

<tr>

<%end if%>

<%listar.movenext%><%next%><%loop%>

</table>

</body>

</html>

<%end if%>

dá erro no sql, dizendo que bof e eof são verdadeiros. mas não lista

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

tenta assim:

<!--#include file="conecta_banco.asp"-->
<% set listar = server.CreateObject("ADODB.Recordset")
listar.open "Select * from socios where mostrar='sim' order by nome asc",conexao

<%dim conta%>
<table border = 0 align="center" cellpadding="2" cellspacing="2" bordercolor="#000000">

<%If listar.EOF or listar.BOF Then%>

NENHUM RESGISTRO ENCONTRADO!

<%
else
do while not listar.eof%>
<%for conta = 1 to contador step 1%>
<% 'aqui vem a tabela com os dados, o for serve para dividir em linhas e colunas.%>

.....
.....

<%if conta mod 2 = 0 then%>
<tr>
<%end if%>

<%listar.movenext%><%next%><%loop%>
</table> 
</body>
</html>
<%end if
end if%>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - ricardovoigt -

cara mesmo 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.

/area/visualizar_socios.asp

to colando todo o código :

<%@LANGUAGE="VBSCRIPT"%>

<% if session("sociologado") <> true then

response.Redirect("index.asp?erro=erro2")

elseif not session("socioid") <> "" then

response.redirect("index.asp?erro=erro3")

else

%>

<!--#include file="conecta_banco.asp"-->

<% set listar = server.CreateObject("ADODB.Recordset")

listar.open "Select * from socios where mostrar = 'sim' order by nome asc",conexao

set contar = server.CreateObject("ADODB.Recordset")

contar.open "Select count(*) as total from socios",conexao

contador = contar("total")

%>

<html>

<head>

<title>Visualização de Sócios</title>

<style type="text/css">

<!--

a:link {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #000000;

text-decoration: none;

border: none;

}

a:visited {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

text-decoration: none;

border: none;

color: #000000;

}

a:hover {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #000000;

text-decoration: none;

border: none;

}

a:active {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

color: #000000;

border: none;

text-decoration: none;

}

-->

</style>

&lt;script language="JavaScript" type="text/JavaScript">

<!--

function MM_popupMsg(msg) { //v1.0

alert(msg);

}

//-->

</script>

</head>

<body>

<%dim conta%>

<table border = 0 align="center" cellpadding="2" cellspacing="2" bordercolor="#000000">

<%If listar.EOF or listar.BOF Then%>

NENHUM RESGISTRO ENCONTRADO!

<%else

do while not listar.eof%>

<%for conta = 1 to contador step 1%>

<td>

<table width="345" height="87" border="1" cellspacing="1" bordercolor="#804040">

<tr>

<td width="83"><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sócio.:</font></div></td>

<td width="183"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<%=listar("nome")%> <br>

</font></td>

<td width="65" rowspan="4" align="left" valign="top"><img src="sociosfotos/<%=listar("foto")%>" width="65" height="80"></td>

</tr>

<tr>

<td height="18"> <div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Registro.:</font></div></td>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <%=listar("registro")%>

</font></td>

</tr>

<tr>

<td height="21"> <div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Segmento.:</font></div></td>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<% tipo = listar("linha")

if tipo = "cor" then

text = "Canários de Cor"

elseif tipo = "porte" then

text = "Canários de Porte"

elseif tipo = "corporte" then

text = "Canários de Cor e Porte"

elseif tipo = "periquitos" then

text = "Periquitos"

elseif tipo = "psiporte" then

text = "Psitascídios e Porte"

end if

response.write text

%>

</font></td>

</tr>

<tr>

<td><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Contatar.:</font></div></td>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href=contatosocio.asp?id=<%=listar("id")%>>clique

aqui</a> </font></td>

</tr>

<tr>

<td colspan="3"><div align="right"><img src="icones/46.gif" width="20" height="16"><a href="alterar_socio.asp?cod=<%=listar("id")%>">Alterar</a>

<img src="icones/delete.gif" width="16" height="16"> <a href="excluir_socio.asp?cod=<%=listar("id")%>" onClick="MM_popupMsg('Voce tem certeza que desejas excluir??')">Excluir</a></div></td>

</tr>

</table>

</td>

<%if conta mod 2 = 0 then%>

<tr>

<%end if%>

<%listar.movenext%><%next%><%loop%>

</table>

</body>

</html>

<%end if%>

<%end if%>

veja se você consegue me ajudar.. eu to pirando já..

abraçoo!!!

Link para o comentário
Compartilhar em outros sites

  • 0

cara mesmo 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.
/area/visualizar_socios.asp

Cara é assim... o "do while" tem de ser executado ao menos uma vez. Se você tiver chamando este comando e não tiver nenhum registo no recordset atual, então o erro é gerado.

usa o "while".

Link para o comentário
Compartilhar em outros sites

  • 0

Do While e While são a mesma coisa. A diferença seria entre usar estes ou Loop While (no qual realmente a execução ocorreria uma vez). O que eu aconselho é dar uma limpada no código (retire toda a parte HTML) e fazer o teste novamente. Caso ocorra o erro, mostre exatamente qual é a linha em que ele ocorre (no código limpo).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Olá...espero que ajude voê a entender melhor como funciona uma página de loop.

Tomando liberdade em comentar a colocação sua sobre SQL, Olha as vezes é complicado programar sim, mas uma é basica em programação, tudo que você determinar que seja feito em um script será feio, porem temos que respeitar certas regras e para respeitar regras devemos conhece-la, eu aconselho você a buscar onde você errou com este script, você ira aprender e muito sobre regras, tudo o que você ver e não entender questione que você ira encontrar a resposta no google ou aqui mesmo, vou te dar um exemplo:

Você usou esta colocação para capturar os numeros de registros:

"Select count(*) as total from socios" ela não está errada porem com colocações erradas.

este tipo de informação pode ser definida na propria conexão utilizando o .RecordCount desta forma:

Nome_atribuido_a_informação(ex: Registro) = NOME_DO_SET.RecordCount

Gostaria de lembrar você que o SQL fala inglês e executa em inglês, quanto mais você entende inglês e organiza a forma que você solicita isto, melhor será o resultado, não tente inventar ou “otimizar” de mais o que você faz, este termo é útil em determinadas ocasiões onde o número de Registro é acima de 1000 registros em uma única tabela, porem o número de dados solicitados influencia na lentidão, por isto muitos otimizam o que não terá grandes resultados, otimizar é dizer de forma direta e pratica ao motor do banco de dados o que ele deve fazer, você poderia dizer:

Por favor, pregue a maçã que esta na cesta ou maça cesta, por favor.

Seria mais ou menos isto.

SELECT PorFavor, Maça FROM Cesta

Ou

SELECT * FROM Cesta WHERE Maça = 'PorFavor' ORDER BY Pegue ASC

Isto é otimizar, uma forma rápida e objetiva de se comunicar com o motor do banco de dados.

Dica:

Veja o motor do banco de dados como um amigo que você conversa com ele via chat, isto ajuda muito você entender como o SQL entende o que você solicita(Eu como sou meio maluco, trato o motor como uma pessoa, foi mais fácil para mim entender como ele faz as coisas e em que ordem).

Forte abraço e fica com Deus.

<table width="35%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> 
<td height="70"> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> 
<td height="70"> <table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr> 
<td height="122" valign="middle" bgcolor="#FFFFFF"> 
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="12p">
<tr> 
<td height="19">
<!-- Em numeros de paginas é definido o numero de itens que será apresentado em cada pagina -->
<%
Const Pagina_Numeros = 1
If Request.QueryString("pagina") = "" Then
BJT_AtualPagina = 1
Else
BJT_AtualPagina = CInt(Request.QueryString("pagina"))
End If
SQL = "SELECT * FROM socios WHERE mostrar = 'sim' ORDER BY nome ASC"
Set Que_Deus_Abençoe_o_Brasil = Server.CreateObject("ADODB.RecordSet")
Que_Deus_Abençoe_o_Brasil.PageSize  = Pagina_Numeros
Que_Deus_Abençoe_o_Brasil.CacheSize = Pagina_Numeros
Que_Deus_Abençoe_o_Brasil.CursorLocation = 3
Que_Deus_Abençoe_o_Brasil.Open sql, conexao
BJT_Registros = Que_Deus_Abençoe_o_Brasil.RecordCount
BJT_Paginas   = Que_Deus_Abençoe_o_Brasil.PageCount 
%>
Numeros de Registros 
<%= BJT_Registros%>
</td>
</tr>
<tr> 
<td height="103">
<%If BJT_Registros = 0 Then %>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class=12p><div align="center"> Não foi encontrado nenhum registro relacionado a sua busca.<br></div></td>
</tr>
</table>
<%
Else
Que_Deus_Abençoe_o_Brasil.AbsolutePage = BJT_AtualPagina
Conta = 0
Do While not Que_Deus_Abençoe_o_Brasil.EOF And Que_Deus_Abençoe_o_Brasil.AbsolutePage = BJT_AtualPagina
Conta = Conta + 1
IF Conta = 1 THEN
Cor = "#C9E4E9"
else
Cor = "#D6F1F8"
END If
%>
<br> 
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td>
<!-- ------------------------------------------------------------------------------------------------------------------------ -->

<!-- Colque aqui o conteudo do loop  -->
<!-- Teste Inicio-->
ID -  <%=listar("id")%>
<!-- Teste Fim-->

<!-- ------------------------------------------------------------------------------------------------------------------------ -->
</td>
</tr>
</table>
<%
Que_Deus_Abençoe_o_Brasil.MoveNext
Loop
%>
</td>
</tr>
</table></td>
</tr>
<tr> 
 <td height="45" valign="top" bgcolor="#FFFFFF"> <table width="100%" border="0" cellspacing="0" cellpadding="0"  align="center">
<tr bgcolor="#FFFFFF"> 
<% If BJT_AtualPagina > 1 Then %>
<td width='10%' height="37" align=center valign="middle"> 
<p><a href="COLOQUE_AQUI_O_NOME_DA_PAGINA_QUE_ESTA_ESTE_ESCRIPT.asp?pagina=<%=BJT_AtualPagina-1%>">Voltar</a></p></td>
<%End If%>
<%If BJT_AtualPagina < BJT_Paginas Then %>
 <td width='76%' align=center><table width="50" border="0" cellspacing="0" cellpadding="4"  align="center">
<tr bgcolor="#FFFFFF"> 
<%For I = 1 To BJT_Paginas%>
<%If I = BJT_AtualPagina Then%>
<td><font class=12p><b> <font size="-1" class=a9><%=I%> 
</font></b></font></td>
<%ELSE%>
<td><a class=12a href="COLOQUE_AQUI_O_NOME_DA_PAGINA_QUE_ESTA_ESTE_ESCRIPT.asp?pagina=<%=I%>"> 
<font size="-1" class=a9><%= I %></font></a></td>
<%End If%>
<%Next%>
</tr>
</table></td>
<td width='14%' align=center valign="middle"><a href="COLOQUE_AQUI_O_NOME_DA_PAGINA_QUE_ESTA_ESTE_ESCRIPT.asp?pagina=<%=BJT_AtualPagina+1%>"><font size="-1"></font>Próxima </a></td>
<%End If%>
<%End If%>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...