Ir para conteúdo

POWERED BY:

Arquivado

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

natalia

Preciso fazer um IF

Recommended Posts

Oi pessoal.Eu preciso fazer um IF mas estou com dificuldades, abaixo está trechos do meu código para vcs entenderem. Eu tenho essas 2 variaveis que recebe um código cada uma, que foi passado como parametro.varCat = Request.QueryString("CodCat")varSubcat = Request.QueryString("CodSubcat")Aqui eu tenho os 2 selectstrDestCat = " SELECT Top 2 Categoria.Codigo_Cat, SubCategoria.Codigo_Subcat, Produto.Codigo_Prod, Produto.Nome_Prod, "strDestCat = strDestCat & " Produto.Texto, Produto.Imagem_Prod, Produto.Preco, Marca.Codigo_Marca, Marca.Logo, "strDestCat = strDestCat & " Prod_Vitrine.* FROM Categoria INNER JOIN SubCategoria " strDestCat = strDestCat & " ON Categoria.Codigo_Cat = SubCategoria.Codigo_Cat INNER JOIN Produto "strDestCat = strDestCat & " ON SubCategoria.Codigo_Subcat = Produto.Codigo_Subcat INNER JOIN Marca "strDestCat = strDestCat & " ON Marca.Codigo_Marca = Produto.Codigo_Marca INNER JOIN Prod_Vitrine "strDestCat = strDestCat & " ON Produto.Codigo_Prod = Prod_Vitrine.Codigo_Prod "strDestCat = strDestCat & " WHERE Prod_Vitrine.Codigo_Vitrine = 9 AND Categoria.Codigo_Cat = "& varCat strDestSub = " SELECT Top 2 SubCategoria.Codigo_Subcat, Produto.Codigo_Prod, Produto.Nome_Prod, "strDestSub = strDestSub & " Produto.Texto, Produto.Imagem_Prod, Produto.Preco, Marca.Codigo_Marca, Marca.Logo, "strDestSub = strDestSub & " Prod_Vitrine.* FROM SubCategoria INNER JOIN Produto " strDestSub = strDestSub & " ON SubCategoria.Codigo_Subcat = Produto.Codigo_Subcat INNER JOIN Marca "strDestSub = strDestSub & " ON Marca.Codigo_Marca = Produto.Codigo_Marca INNER JOIN Prod_Vitrine "strDestSub = strDestSub & " ON Produto.Codigo_Prod = Prod_Vitrine.Codigo_Prod "strDestSub = strDestSub & " WHERE Prod_Vitrine.Codigo_Vitrine = 9 AND Categoria.Codigo_Cat = "& varSubcat Call Open_cn%>Aqui eu preciso fazer um if assim:Se a variável varCat for igual codigo_cat (campo da minha tabela) então executa o primeiro select, senão o segundo.Como fazer esse if?While Not rsDestCat.EOF %><img src="<%= rsDestCat("Imagem_Prod")%>"> <img src="<%= rsDestCat("Logo")%>"> <%= rsDestCat("Nome_Prod")%><%= rsDestCat("Texto")%><%= FormatNumber(rsDestCat("Preco"),2)%> </tr> </table> <% rsDestCat.MoveNext WendMais uma pergunta, eu preciso de um único loop, ou tenho que montar um para cada select. Ambos os select mostram as mesmas caracteristicas, como nome_prod, texto, preco.Podem me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejamos se entendi direito:

 

if varCat=Seucampo then

strDestCat = " SELECT Top 2 Categoria.Codigo_Cat, SubCategoria.Codigo_Subcat, Produto.Codigo_Prod, Produto.Nome_Prod, "

strDestCat = strDestCat & " Produto.Texto, Produto.Imagem_Prod, Produto.Preco, Marca.Codigo_Marca, Marca.Logo, "

strDestCat = strDestCat & " Prod_Vitrine.* FROM Categoria INNER JOIN SubCategoria "

strDestCat = strDestCat & " ON Categoria.Codigo_Cat = SubCategoria.Codigo_Cat INNER JOIN Produto "

strDestCat = strDestCat & " ON SubCategoria.Codigo_Subcat = Produto.Codigo_Subcat INNER JOIN Marca "

strDestCat = strDestCat & " ON Marca.Codigo_Marca = Produto.Codigo_Marca INNER JOIN Prod_Vitrine "

strDestCat = strDestCat & " ON Produto.Codigo_Prod = Prod_Vitrine.Codigo_Prod "

strDestCat = strDestCat & " WHERE Prod_Vitrine.Codigo_Vitrine = 9 AND Categoria.Codigo_Cat = "& varCat

else

strDestSub = " SELECT Top 2 SubCategoria.Codigo_Subcat, Produto.Codigo_Prod, Produto.Nome_Prod, "

strDestSub = strDestSub & " Produto.Texto, Produto.Imagem_Prod, Produto.Preco, Marca.Codigo_Marca, Marca.Logo, "

strDestSub = strDestSub & " Prod_Vitrine.* FROM SubCategoria INNER JOIN Produto "

strDestSub = strDestSub & " ON SubCategoria.Codigo_Subcat = Produto.Codigo_Subcat INNER JOIN Marca "

strDestSub = strDestSub & " ON Marca.Codigo_Marca = Produto.Codigo_Marca INNER JOIN Prod_Vitrine "

strDestSub = strDestSub & " ON Produto.Codigo_Prod = Prod_Vitrine.Codigo_Prod "

strDestSub = strDestSub & " WHERE Prod_Vitrine.Codigo_Vitrine = 9 AND Categoria.Codigo_Cat = "& varSubcat

end if

 

É isso?

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, isso foi o que eu fiz:If varCat = rsDestCat("Codigo_Cat") thenSet rsDestCat = Conexao.Execute(strDestCat)ElseSet rsDestSub = Conexao.Execute(strDestSub)End IfMais não funcionou, dá erro na primeira linha do ifErro de tempo de execução do Microsoft VBScript (0x800A000D)Tipos incompatíveis

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deve estar comparando TEXTO com NÙMERO!!!.....tente fazer uma verificação antes...........caso você esteja trabalhando somente com NÚMEROS faça assim

<%strNum = Request("num")if IsNumeric(strNum) = False thenstrNum = 0elsestrNum = Int(strNum) 'converte para nº inteiro....end if%>

falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já penei com um problema assim, vamos lá:

 

Qual é o tipo de dado gravado em rsDestCat("Codigo_Cat")?

É numero ou text?

E na varCat?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então vamos testar assim:

If varCat - rsDestCat("Codigo_Cat")=0 thenSet rsDestCat = Conexao.Execute(strDestCat)ElseSet rsDestSub = Conexao.Execute(strDestSub)End If

:blink: Teste e diz o q aconteceu.Valeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então vamos testar assim:

If varCat - rsDestCat("Codigo_Cat")=0 thenSet rsDestCat = Conexao.Execute(strDestCat)ElseSet rsDestSub = Conexao.Execute(strDestSub)End If

:blink: Teste e diz o q aconteceu.Valeu?
Corrigindo:
If cint(varCat) - cint(rsDestCat("Codigo_Cat")) = 0 thenSet rsDestCat = Conexao.Execute(strDestCat)ElseSet rsDestSub = Conexao.Execute(strDestSub)End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

então se os 2 são nºs e está dando erro na comparação, é pq algum dos 2 está vindo vazio!!falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me explique melhor:varCat ou varsubCat podem vir vazias, ou seja seus valores podem ser "", certo?Então logo após você dar o request nas variáveis você testa assimif varCat="" then varCat=0 end ifif varsubCat="" then varCat=0 end ife pode usar o ultimo exemplo de if que te passei.Testa aí e retorna para saber se é isso mesmovaleu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou testando, mas continua dando erro. Me explica uma coisa depois do if vem o loop que será o mesmo para ambos os select? Ou eu tenho que fazer 2, ex:If varCat ...Set ... executa o select1While not rs.EOF<img src="<%= rs("Imagem_Prod")%>"><%= rs("Nome_Prod")%>rs.MoveNextWendrs.Close ElseSet ... executa o select2While not rs2.EOF<img src="<%= rs2("Imagem_Prod")%>"><%= rs2("Nome_Prod")%>rs2.MoveNextWendrs2.Close fecha o banco.Ou é só um loop?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os campos que você quer retornar são os mesmos para os dois casos?Se for pode usar um loop só fora do IFs, se não é mais fácil usar dois loops um em cada IF.Qual erro deu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu esse erro:Erro de tempo de execução do Microsoft VBScript (0x800A000D)Tipos incompatíveisPosso enviar o meu código p/ o seu e-mail?

Compartilhar este post


Link para o post
Compartilhar em outros sites

iguala um igual a ZERO!!!ao invés de ser vazio!!! entende???<%if varCat = "" thenvarCat = 0end if%>

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.