Ir para conteúdo

POWERED BY:

Arquivado

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

Jack.Psycho

[Resolvido] Erro Bizarro ou eu sou burro ?

Recommended Posts

Estou metade do dia para resolver um problema que ainda não entendi se é algum erro bizarro ou eu sou burro mesmo (O que é mais provável).

 

Estou querendo listar todos os produtos existentes em uma tabela, separados por virgula e "imprimí-los" na tela.

 

Para pegar todos os resultados da tabela faço.::

regtotal = "SELECT COUNT(*) as total FROM produtos WHERE idsessao='"&request("id")&"'"
set rstotal = conexao.execute(regtotal)

 

Buscar nome dos produtos.::
set tags = conexao.execute("SELECT * FROM produtos WHERE categoria='"&request("id")&"'")

 

Para fazer a impressão de um por um separado por vírgula.::

contador = 0
Do while contador < rstotal("total")
Response.Write ", "
Response.Write tags.fields("nome") 
tags.MoveNext

if contador > 10 then
exit do
end if

contador = contador + 1
Loop

 

Tudo funciona perfeitamente mas preciso usar esse código em diversas páginas, cada uma possui uma quantidade total diferente de produtos (Não apenas 10 como consta acima "if contador > 10 exit do", aí que entra o erro que não consigo solucionar.::

 

Teoricamente bastaria alterar a linha.::

if contador > 10 then

 

pela linha abaixo que, teoricamente, limitaria o total do contador pela quantidade total de produtos listado na busca efetuada na tabela.::

if contador > rstotal("total") then

 

Mas não funciona, não sei se é algum erro bizarro ou eu que estou fazendo alguma coisa errada. Quando tento usar a linha acima não é exibida a lista total de produtos, apenas dois, se altero para um total numérico, 15 por exemplo, a listagem é feita.

 

Uma Solução que tentei foi fazer o seguinte.::

Dim contador
contador = 0
Do While contador <= rstotal("total")
   Response.Write ", "
   Response.Write tags.fields("nome") 
   tags.MoveNext
contador = contador +1
Loop

 

Mas a página entra em loop contínuo e trava o navegador, se eu alterar o valor de rstotal("total") para outro valor númérico funciona normalmente.

 

Alguém pode me dar uma força ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL, para ver o que esta sendo passado

 

response.write SQL

response.end()

 

voce esta passando o request("id") como string, verifique se o tipo de dados esta correto, ou se é tipo numérico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentando entender porque a página entrava em loop contínuo e travava encontrei a solução.

 

O Erro acontecia porque eu deveria ter convertido o resultado obtido da tabela de string para numérico, usando a função CINT, cint(var1), o valor fica como numérico e o contador funciona normal.

 

Eu não conhecia essa função mas achei bem útil, espero que isso ajude mais alguém.

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.