Ir para conteúdo

POWERED BY:

Arquivado

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

wilnet

[Resolvido] Problema com Select Case...

Recommended Posts

Olá pessoal, todos bem?

 

Estou tendo uma dificuldade em INSERIR mais um campo CASE, sempre me da erro, não sei mais... Preciso de uma colaboração de vcs.. Obrigado.

 

São três Formas de escolha PAC, Sedex a Cobrar, ou Retirar no Local.

 

No entanto, não estou conseguindo inserir a terceira opção. Segue o code.

 


<%
Response.End
Else

  Dim chk_nomeCompleto
			pgmt_cfg = pgmt_tipos("cfg")
			Select Case pgmt_cfg
				Case "PAC" 
					set chk_nomeCompleto = dadosDB.Execute("SELECT nomeCompleto FROM clientes WHERE id = " & ped_user_id)
					If IsNull(chk_nomeCompleto("nomeCompleto")) OR chk_nomeCompleto("nomeCompleto") = "" OR chk_nomeCompleto("nomeCompleto") = " " Then
%>
	<tr>
	<td>Para pagar através do <%=pgmt_tipos("dados")%>, 
	<br>
	     você precisa atualizar o número do seu CPF/CGC nas informações do cadastro.<br> Clique <a class="linkVermelho" href="./cadastro.asp?acao=editar&pagina=fecharpedido.asp">aqui</a> atualizar o seu cadastro.
  </td>
  </tr>
  </table>


<table width="820" align="center" cellpadding="0" cellspacing="0">
<%
			     			Response.End
					Else
					dadosDB.Execute("INSERT INTO pedidos(ped_id,data_ped,status,user_id,prod_id,prod_valor,prod_quant,pgmt_id) values("& ped_id & ",'" & ped_data_ped & "'," & ped_status & "," & ped_user_id & "," & ped_prod_id & "," & ped_prod_valor & "," & ped_prod_quant & "," & Request.QueryString("pgmt_id") & ")")
					End If

				Case "Sedex"
					dadosDB.Execute("INSERT INTO pedidos(ped_id,data_ped,status,user_id,prod_id,prod_valor,prod_quant,pgmt_id) values("& ped_id & ",'" & ped_data_ped & "'," & ped_status & "," & ped_user_id & "," & ped_prod_id & "," & ped_prod_valor & "," & ped_prod_quant & "," & Request.QueryString("pgmt_id") & ")")

			End Select
		End If
	Next
	Session("car_prod_id") = ""
%>

<tr>
<td>
<h3 align="center">Pedido Cadastrado com Sucesso</h3>
</td>
</tr>

	<tr>
	<td>
	  <div align="center"><img src="imagem/seta_direita.gif" width="15" height="15" /> O número do seu pedido é <span class="asterisco"><%=ped_id%></span>
	  </div></td>
	</tr>

<%
	pgmt_tipos.MoveFirst
	Select Case pgmt_cfg
		Case "PAC" 
%>

<tr>
<td><!--#include file="pac.asp"--></td>
</tr>

<%
		Case "Sedex"
%>

<tr>
<td><!--#include file="sedex.asp"--></td>
</tr>

<%

		Case "Local"
%>

<tr>
<td><!--#include file="local.asp"--></td>
</tr>

<%
	End Select
End If
End If
%>

 

 

 

O que preciso é inserir mais esse CASE: O CASE "Local"

 

Case "Local"
					dadosDB.Execute("INSERT INTO pedidos(ped_id,data_ped,status,user_id,prod_id,prod_valor,prod_quant,pgmt_id) values("& ped_id & ",'" & ped_data_ped & "'," & ped_status & "," & ped_user_id & "," & ped_prod_id & "," & ped_prod_valor & "," & ped_prod_quant & "," & Request.QueryString("pgmt_id") & ")")

 

Obrigado a todos desde já.

 

Atenciosamente,

 

William

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a mensagem de erro?

 

Você já deu um response.write nessa linha para ver o SQL que está sendo executado?

Response.Write "INSERT INTO pedidos(ped_id,data_ped,status,user_id,prod_id,prod_valor,prod_quant,pgmt_id) values("& ped_id & ",'" & ped_data_ped & "'," & ped_status & "," & ped_user_id & "," & ped_prod_id & "," & ped_prod_valor & "," & ped_prod_quant & "," & Request.QueryString("pgmt_id") & ")"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Hargon

 

O erro que está dando é quando tento inserir esse outro codigo.

 


Case "Local"
dadosDB.Execute("INSERT INTO pedidos(ped_id, data_ped, status, user_id, prod_id, nome_categoria, prod_valor, prod_quant, cor_categorias, pgmt_id) values("& ped_id & ",'" & ped_data_ped & "'," & ped_status & "," & ped_user_id & "," & ped_prod_id & ",'" & ped_prod_nome_cat & "'," & ped_prod_valor & "," & ped_prod_quant & "," & ped_prod_cor_cat & "," & Request.QueryString("pgmt_id") & ")")

 

Não sei como inserir esse código acima.

 

Se observar, ele está assim:

Select Case pgmt_cfg
Case "PAC" ... 

 

 

Else
dadosDB.Execute("INSERT INTO ...

 

End If

     Case "Sedex"
dadosDB.Execute("INSERT INTO ...

 

End Select

 

Agora como e onde eu posso inserir mais esse:

 


Case "Local"
dadosDB.Execute("INSERT INTO pedidos(ped_id, data_ped, status, user_id, prod_id, nome_categoria, prod_valor, prod_quant, cor_categorias, pgmt_id) values("& ped_id & ",'" & ped_data_ped & "'," & ped_status & "," & ped_user_id & "," & ped_prod_id & ",'" & ped_prod_nome_cat & "'," & ped_prod_valor & "," & ped_prod_quant & "," & ped_prod_cor_cat & "," & Request.QueryString("pgmt_id") & ")")

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use a sintaxe correta do case

 

SELECT CASE Variavel

CASE valor1

comandos

CASE valor2

comandos

CASE valor2

comandos

CASE ELSE

comandos

END SELECT

 

Não ponha ELSEs no meio e sim um ÚNICO e se NECESSÁRIO no fim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Mario, obrigado.

 

Mas se você observar logo do início de meu Post, irá notar de que eu preciso usar sim esses "If" e "Else If".

 

Eu só preciso saber como inserir mais esse CASE para "Local".

 

Por favor, vejam o início do tópico e não apenas o final dele, assim poderão entender melhor.

 

Não sei como fazer isso.

 

Muito obrigado a todos por qualquer ajuda.

 

William

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lí todo teu tópico, e sinceramente, tirando a bagunça do code, ele ta certo...

 

Utilize response.write nas linhas que estão dando erro ou não estão aparecendo como deveriam assim temos como saber o que ta rolando ja que não temos acesso ao teu code...

 

uma delas é aqui:

response.write pgmt_cfg

 

Pra saber se o usuário ta realmente enviando o valor "Local"... pq pode ser erro no form que escolhe e estar retornando outro valor, por isso o case Local não roda quando seleciona ele.

 

Outra mudança que "DEVE" ser feita:

 

Select Case pgmt_cfg
       Case "PAC" ... 
Else
       dadosDB.Execute("INSERT INTO ...
End If

     Case "Sedex"
       dadosDB.Execute("INSERT INTO ...

End Select

 

Como o outro user falou, não utilize elses para o case no meio do select senão vai dar pau... isso é lógica... programadores usam lógica...

Faça de outra forma...

 

Case "PAC"
If pgmt_cfg = "Pac" Then
'resultado
Else
'Resultado
End If

Case "Outro Valor"
If pgmt_cfg = "Outro Valor" Then
'resultado
Else
'Resultado
End If

Case "Local"
If pgmt_cfg = "Local" Then
'resultado
Else
'Resultado
End If

End Select

 

obs: ao invés de utilizar o if dentro pra verificar o mesmo valor que o select já verificou, você pode verificar outras opções a vontade nele. Usei o mesmo valor de verificação pra você só pegar a "intenção" de como usar os if´s internos.

 

 

Outra questão, você pode diminuir o code e melhorar o script usando case rpa setar valores novos e então apenas 1 IF, que vai responder como sendo um objeto novo (pra usar INSERT INTO ou algo parecido pelo q ví no seu code) e ELSE pra setar o valor de update... Questão simples de resolver se tiver acesso ao code todo...

 

 

Faça o seguinte, poste todo o código da página aqui se não conseguir resolver, mesmo que fique grande... e no final do code diga:

Linha 35 começa os selects e eu preciso inserir mais 1 e não sei onde.

Linha 450 é onde faço os ifs pra tal coisa... etc... assim agente tem como te ajudar melhor =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está um tanto quanto bagunçado seu código mesmo

 

Voce tem dois SELECT CASE para a mesma variavel?

 

Porque só colocou a nova opção no segundo SELECT CASE?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jean Franceschi,

 

Segui seu conselho e dei uma limpada no code, fiz como seu exemplo na sequencia, e funcionou corretamente agora.

 

Valeu por sua atenção dada, muito obrigado mesmo Jean.

 

Obrigado tb a todos os demais.

 

Podem fechar esse Tópico.

 

Atenciosamente,

 

William

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.