Jump to content


Photo

Outro Do While


  • Faça o login para participar
4 replies to this topic

#1 Gabriel2ny

Gabriel2ny

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino

Posted 21/03/2007, 16:28

Como sofro com o Do while. Rs
O erro que está faltando concertar está explicado logo abaixo do codigo:


<%option explicit

dim cf, m, a, sql, p

cf = request.Form("codforn")
m = request.Form("mês")
a = request.Form("ano")
p = 0


%>

<!--#include file="../CONEXAO/conectar.asp" -->

<%

set sql = conexao.execute("SELECT * FROM Vendastb WHERE CodF = '"&cf&"' AND mês = '"&m&"' AND Ano = '"&a&"'")

if sql.eof then
	session("msg") = "Nenhum Resultado Encontrado!"
	response.Redirect("pag2.asp")
end if

do while not sql.eof
	p = p + sql("Total")
sql.MoveNext
Loop
%>

Se eu tirar o laço do while e não calcular nada em "p" o codigo funciona, posso fazer qualquer consulta usando a variavel "sql" , mas tá dando problema no calculo do p.

Se eu mandar escrever apenas o sql("Total") ele coloca certinho... Mas como quero a soma dos totais ele não calcula..
Tenho um programa aqui que fiz algo identico e deu certo.. não to entendendo o erro agora.

Dá uma luz aí pessoal... to quase terminando meu pro.. rsrs

#2 siola

siola

    Usuário

  • Usuários
  • 894 posts
  • Sexo:Masculino
  • Localidade:SBC - SP
  • Interesses:ASP, .NET, javascript

Posted 21/03/2007, 17:01

Provavelmente são variaveis de tipos diferentes.
Poe um CINt() nas duas pra passar ambas pra inteiro e ve se resolve.

#3 Gabriel2ny

Gabriel2ny

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino

Posted 21/03/2007, 18:42

Fiz assim e nao deu certo.. deu tipos incompativeis na linha 8 (onde tem p = 0).. rs

<%option explicit

dim cf, m, a, sql, p

cf = request.Form("codforn")
m = request.Form("mes")
a = request.Form("ano")
cint(p) = 0	(LINHA 8)


%>

<!--#include file="../CONEXAO/conectar.asp" -->

<%

set sql = conexao.execute("SELECT * FROM Vendastb WHERE CodF = '"&cf&"' AND Mes = '"&m&"' AND Ano = '"&a&"'")

if sql.eof then
	session("msg") = "Nenhum Resultado Encontrado!"
	response.Redirect("pag2.asp")
end if

do while not sql.eof
	p = p + cint(sql("Total"))
sql.MoveNext
Loop


%>

Tem outra carta na manga ?

#4 tHiAgOsF

tHiAgOsF

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/03/2007, 20:40

cara se vc fez um programa q deu certo, o erro pode ser no seu bd, olha se o campo "Total", esta como numero ou texo,

pode ser isso ...

#5 replay

replay

    Agora a vida começa...

  • Usuários
  • 421 posts
  • Sexo:Não informado

Posted 22/03/2007, 04:05

Cara vamos por partes...

Vc deve ultilizar a função de converção (CINt, Cstr, CCur etc..) no valor da variavel e nunca no "nome" da variavel

então

CInt(p) = 0
nisso vc quis converter a letra "p" em um tipo numerico e ainda dizer que o valor numerico de p (coisa que não existe*) é igual a zero. Resultado: Erro

o correto então seria

p = CInt(0)
então temos a variavel p = 0 convertido em numero



Ta mas isso não é o seu erro no script (o primeiro que vc apresentou)

Nele vc tem que converter o resultado que veio do Bd (rs("total")) em valor numerico pra so depois poder somar (vc so pode somar se tiver dois valores numericos)
é so vc fazer isso e pronto.

Valeu :P
Não me adicione no MSN pq eu não vo te ajuda... se insistir eu vo ser grosso!!!
Ta com dúvida pergunta aqui no fórum...
Grato




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq