Ir para conteúdo

POWERED BY:

Arquivado

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

Jow Xavier

[Resolvido] erro com loop

Recommended Posts

Boa tarde tenho esse trecho de código

<% while not tab.EOF %>
<option><%=tab("classificacao")%></option>
<% tab.movenext 
	wend %>
</select>
<input type="hidden" name="id" value="<%=tab("id")%>"></td>
, que está dabdo o seguinte 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.

/visao_musical/admin/produtos.asp

Mas se usar o mesmo código sem o loop funciona corretamente. Alguém pode me ajudar ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca esse while not tab.EOF dentro de um IF

 

IF not tab.EOF THEN

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara continuou o mesmo erro, se eu tirar esse campo oculto ele funciona mas o problema é q eu preciso dele hehe, preciso de um laço q pegue todos os dados, inclusive esse campo oculto !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ficar assim:

<% if not tab.EOF then %>
<input type="hidden" name="id" value="<%=tab("id")%>">
<% while not tab.EOF %>
<option><%=tab("classificacao")%></option>
<% tab.movenext
 wend 
end if
%>
</select>
</td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o código do select ou então faça a adaptação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!-- #include file="config/conexao.asp"-->

<% call abre_conectar

sql = "Select * from categorias"

set tab = cnn.execute(sql)%>

 

<form name="form1" action="inserir_produto.asp" method="post" enctype="multipart/form-data">

<table align="center">

<tr>

<td class="titulo1">Classificação:</td>

<td><SELECT NAME="classificacao" class="formulario">

 

<% while not tab.EOF %>

<OPTION><%=tab("classificacao")%></OPTION>

</SELECT>

<input type="hidden" name="id" value="<%=tab("id")%>"></td>

<% tab.movenext

wend %>

<%

call fecha_conectar

set tab = nothing%>

tbm fiz a adaptação e apareceu a fodo do option, tenho duas informações na tabela uma mostra no dentro do option e a outra fora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!-- #include file="config/conexao.asp"-->

<% call abre_conectar

sql = "Select * from categorias"

set tab = cnn.execute(sql)%>

 

<form name="form1" action="inserir_produto.asp" method="post" enctype="multipart/form-data">

<table align="center">

<tr>

<td class="titulo1">Classificação:</td>

<td>

<% if not tab.EOF then %>

<input type="hidden" name="id" value="<%=tab("id")%>">

<SELECT NAME="classificacao" class="formulario">

<%

while not tab.EOF %>

<OPTION><%=tab("classificacao")%></OPTION>

<%

tab.movenext

wend

%>

</SELECT>

<%

end if

call fecha_conectar

set tab = nothing

%>

</td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exibiu certinho, só ñ tá pegando o ID, pq ele tem q ser capturado conforme o usuário selecionar a categoria !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora que entendi aquele ID... é o ID da categoria né? Bem que vi que ele estava perdido ali...

 

Acrescenta essa linha:

<OPTION value="<%=tab("id")%>"><%=tab("classificacao")%></OPTION>

 

E remove a INPUT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia;

Posso estar falando besteira pq não manjo de asp

mas não está faltando um

 

[RecordSet].MoveFirst?

Opá cara estou usando tab.movenext, q tbm move para o próximo registro, ae e você ñ falou besteira !!!

 

hargon: Cara ele salvou o id no lugar do campo classificacao, eu queria q salvasse os dois o id e a classificacao, mas eu resolvi o meu problema com esse comando q você me passou ... Ae como eu faço para salvar tbm a classificacao ??? Valeuuu mais uma vez ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que assim Jow Xavier

Meu professor de asp (eu ainda sou noob hahah) falou que primeiro o ponteiro tem de se mover pra algum registro, pra dpois mover para o próximo :)

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas é assim que funciona o SELECT. O ideal é você salvar o ID do registro. Quando você precisar do nome, você faz uma consulta utilizando o ID e pega o nome.

 

Se quiser mesmo salvar os dois, terá que criar dois campos no formulário, um para ID e um para Classificação.

 

é que assim Jow Xavier

Meu professor de asp (eu ainda sou noob hahah) falou que primeiro o ponteiro tem de se mover pra algum registro, pra dpois mover para o próximo :)

 

Abraço

kobutiii, utiliza .movefirst volta para o inicio da leitura do arquivo.

 

É interessante utilizar esse método quando você lê uma recordset e logo abaixo precisa utilizá-la novamente desde o inicio. Para não ter que criar uma nova consulta, você manda voltar para o inicio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

kobutiii, utiliza .movefirst volta para o inicio da leitura do arquivo.

 

É interessante utilizar esse método quando você lê uma recordset e logo abaixo precisa utilizá-la novamente desde o inicio. Para não ter que criar uma nova consulta, você manda voltar para o inicio.

é isso ai ñ soube explicar assim hehehe

 

Mas é assim que funciona o SELECT. O ideal é você salvar o ID do registro. Quando você precisar do nome, você faz uma consulta utilizando o ID e pega o nome.

 

Se quiser mesmo salvar os dois, terá que criar dois campos no formulário, um para ID e um para Classificação.

Ok vou criar um outro campo no meu formulário valeuu .. Pode fechar esse táopico ... resolvido o problema

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.