ricardovoigt Postado Fevereiro 20, 2007 Denunciar Share Postado Fevereiro 20, 2007 <!--#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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Fevereiro 20, 2007 Denunciar Share Postado Fevereiro 20, 2007 Quando ambos são verdadeiros é porque a consulta não retornou nenhum registro. Verifique se a sua instrução SQL está correta e se ela realmente retorna algum registro.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcos-rj Postado Fevereiro 20, 2007 Denunciar Share Postado Fevereiro 20, 2007 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%> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - ricardovoigt - Postado Fevereiro 20, 2007 Denunciar Share Postado Fevereiro 20, 2007 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.aspto 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",conexaoset contar = server.CreateObject("ADODB.Recordset")contar.open "Select count(*) as total from socios",conexaocontador = 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><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!<%elsedo 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!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcos_804 Postado Fevereiro 27, 2007 Denunciar Share Postado Fevereiro 27, 2007 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.aspCara é 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". Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Fevereiro 28, 2007 Denunciar Share Postado Fevereiro 28, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marciombl Postado Fevereiro 28, 2007 Denunciar Share Postado Fevereiro 28, 2007 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.RecordCountGostaria 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 CestaOuSELECT * FROM Cesta WHERE Maça = 'PorFavor' ORDER BY Pegue ASCIsto é 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ricardovoigt
<!--#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
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.