Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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"> 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
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.
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
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
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 =)
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?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
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") & ")"