Ir para conteúdo

POWERED BY:

Arquivado

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

razs

Nao le if

Recommended Posts

Boas, isto é algo estranho, o meu ciclo if nao esta a ser lido nao sei bem porque.

response.write "-->"&x
if x="1" then
     response.write "ok"
end if

ele devolve -->1 mas nao escreve o ok, ja verifiquei com aspas, sem aspas, se x é numerico, não percebo porque nao le.

Inclusive alterei o if para valor="funca" e com o valor defenido como funca ele nao responde ok na mesma.

 

A que proposito ele nao corre o ciclo if? Alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para melhor ajuda, faltou mostrar de onde vem e como definiu esse "x"...

A condição compara uma string, então tenha certeza que "x" seja uma, ou então, utilize outras comparações para verificar o tipo da variável, se é numérica (isNumeric) ou se está vazia (isNull).

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho assim

x="1"
do while x <11
		
Set rsgo_pro = conn1.Execute("select * from tabela where status="&x&" ")
do while not rsgo_pro.eof

response.write x

if x="1" then
    response.write "mostra"
end if		

x=x+1
loop	

ele devolve o x como 1, ja verifiquei com isnumeric e responde sempre true.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você utiliza a variável "x" como string e numérica? Se ela é numérica, trate-a como tal, pois você a declarou como string. Apesar do "isNumeric" mostrar verdadeiro para a variável x="1", ela ainda continua sendo uma string, em resumo: x = "1" é diferente de x = 1 : Faça o teste para verificar:

Dim x
x = ...
If isNumeric(x) = True Then
	If Int(x) = x Then
		Response.Write("É Numerico/Inteiro!")
	Else
		Response.Write("Não É Numerico/Inteiro!")
	End If
Else
	Response.Write("Não É Númerico!")
End If

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no primeiro ou seja x=1 ele diz "Não É Numerico/Inteiro!" no segundo ou seja x=2 diz "É Numerico/Inteiro!" e empanca

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei isto de modo a nao ter este problema

tab1="acidentes"
tab2="alcoolemia"

x="1"
do while x <11
									
dim varx 
varx = eval("tab"&x)

response.write "<br><br><br><br>"&eval("tab"&x)&"<--->"&varx

									
nome_tabela = eval("tab"&x)
Set rsgo_pro = conn1.Execute("select * from "&nome_tabela&" ")
										
do while not rsgo_pro.eof


if varx="acidentes" then
response.write "1"
end if

if varx="alcoolemia" then
response.write "2"
end if

x=x+1
loop

Mas mesmo assim nao vai dentro dos if´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua variável "x" é numérica então trate-a como tal, pois você declara ela como string (x="1") e depois usa como numérica no loop (x=x+1), repetindo, x="1" (string) é diferente de x=1 (numeric):

Dim x
x = 1
Do While x < 11
	If isNumeric(x) = True Then
		If Int(x) = x Then
			Response.Write(x &" É Numerico/Inteiro!<br>")
		Else
			Response.Write(x &" Não É Numerico/Inteiro!<br>")
		End If
	Else
		Response.Write(x &"Não É Númerico!<br>")
	End If
x = x + 1
Loop

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim mas eu agora alterei isso, e mesmo assim ele nao vai ao if

tab1="acidentes"
tab2="alcoolemia"

x="1"
do while x <11
									
dim varx 
varx = eval("tab"&x)

response.write "<br><br><br><br>"&eval("tab"&x)&"<--->"&varx

									
nome_tabela = eval("tab"&x)
Set rsgo_pro = conn1.Execute("select * from "&nome_tabela&" ")
										
do while not rsgo_pro.eof


if varx="acidentes" then
response.write "1"
end if

if varx="alcoolemia" then
response.write "2"
end if

x=x+1
loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

os tipos de dados estão corretos ?

 

tentar converter antes

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.