Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
estou fazendo um e-commerce e na hora de finalizar o pedido acontece o seguinte erro
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver]
There are fewer columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
/envia_pedido.asp, line 39
o código:
CODE<!-- #INCLUDE file="conexao.asp" --><%
Call abre_conexao
if Session("LOGID") = "" then
response.write ("<script>alert('Ocorreu um erro na finalização de seu pedido, por favor tente novamente.');parent.location.href='index.asp';</script>")
end if
CONST constID = 0
CONST constNome = 1
CONST constValor = 2
CONST constQtde = 3
'Pega Carrinho
IF NOT isArray(Session("carrinho") ) THEN
DIM carrinho(5,20)
ELSE
carrinho = Session("carrinho")
END IF
forma_pagamento = request.Form("rdbFormaPagamento")
id_usuario = Session("LOGID")
conexao.execute("INSERT INTO TB_PEDIDO (ID_USUARIO,ID_STATUS,DATA_PEDIDO,FORMA_PAGAMENTO) VALUES ("&id_usuario&",1,'"&now()&"','"&forma_pagamento&"')")
if err.number <> 0 then
response.write("<script>alert('A ação nao pode ser concluida. Tente novamente mais tarde.');location.href='index.asp';</script>")
response.End()
end if
sqlID_PEDIDO = "SELECT @@IDENTITY as ID FROM TB_PEDIDO"
set rsIDPedido = conexao.execute(sqlID_PEDIDO)
id_pedido = rsIDPedido("ID")
for i=0 to Ubound(carrinho,2)
if carrinho(constID,i) <> "" then
conexao.execute("INSERT INTO TB_PEDIDO_PRODUTO (ID_PEDIDO,ID_PRODUTO,VALOR_PRODUTO,QTDE,DESCRICAO_PRODUTO) VALUES ("&id_pedido&","&carrinho(constID,i)&","&carrinho(constValor,i)&","&carrinho(constQtde,i)&",'"&carrinho(constNome,i)&"')")
if err.number <> 0 then
conexao.execute("DELETE FROM TB_PEDIDO WHERE ID_PEDIDO="&id_pedido&"")
response.write("<script>alert('A ação nao pode ser concluida. Tente novamente mais tarde.');location.href='index.asp';</script>")
response.End()
end if
end if
next
sqlTipoPessoa = "SELECT PESSOA,EMAIL FROM USUARIO WHERE ID="&id_usuario&""
set rsTipoPessoa = conexao.execute(sqlTipoPessoa)
pessoa = rsTipoPessoa("PESSOA")
email = rsTipoPessoa("EMAIL")
if pessoa = "F" then
sqlUser = "SELECT B.NOME,B.SOBRENOME,C.CEP,C.ENDERECO,C.NUMERO,C.COMPLEMENTO,C.BAIRRO,C.CIDADE,C.E
STADO,D.DATA_PEDIDO,D.FORMA_PAGAMENTO"
sqlUser = sqlUser & " FROM Usuario A, CLI_PF B, CLI_Endereco C, TB_PEDIDO D "
sqlUser = sqlUser & " WHERE A.ID = "&id_usuario&" AND A.ID = B.ID_USER AND A.ID = C.ID_USER AND D.ID_PEDIDO = "&id_pedido&""
set rsUser = conexao.execute(sqlUser)
nome = rsUser("NOME") & " " & rsUser("SOBRENOME")
cep = rsUser("CEP")
endereco = rsUser("ENDERECO")
numero = rsUser("NUMERO")
complemento = rsUser("COMPLEMENTO")
bairro = rsUser("BAIRRO")
cidade = rsUser("CIDADE")
estado = rsUser("ESTADO")
data_pedido = rsUser("DATA_PEDIDO")
forma_pagamento = rsUser("FORMA_PAGAMENTO")
else
sqlUser = "SELECT B.CONTATO,C.CEP,C.ENDERECO,C.NUMERO,C.COMPLEMENTO,C.BAIRRO,C.CIDADE,C.ESTADO,D.D
ATA_PEDIDO,D.FORMA_PAGAMENTO"
sqlUser = sqlUser & " FROM Usuario A, CLI_PJ B, CLI_Endereco C, TB_PEDIDO D "
sqlUser = sqlUser & " WHERE A.ID = "&id_usuario&" AND A.ID = B.ID_USER AND A.ID = C.ID_USER AND D.ID_PEDIDO = "&id_pedido&""
set rsUser = conexao.execute(sqlUser)
nome = rsUser("CONTATO")
cep = rsUser("CEP")
endereco = rsUser("ENDERECO")
numero = rsUser("NUMERO")
complemento = rsUser("COMPLEMENTO")
bairro = rsUser("BAIRRO")
cidade = rsUser("CIDADE")
estado = rsUser("ESTADO")
data_pedido = rsUser("DATA_PEDIDO")
forma_pagamento = rsUser("FORMA_PAGAMENTO")
end if
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = "Cobequi"
Mailer.FromAddress= "contato@cobequi.com.br"
Mailer.RemoteHost = "smtp2.locaweb.com.br"
Mailer.AddRecipient "", email
Mailer.AddBCC "", "ricardo@cobequi.com.br"
Mailer.AddBCC "", "web.igor@gmail.com"
Mailer.AddBCC "", "web.igor@gmail.com"
Mailer.ContentType = "text/html" ' formatação html
mensagem = "<div align=center>Cobequi.com.br<br>-------------------------------------------------------------<br> <strong>CONFIRMAÇÃO DE PEDIDO </strong><br> ------------------------------------------------------------- </div><p> Prezado(a) "&nome&"</p><p> Esta é a confirmação de que seu pedido de orçamento foi realizado com sucesso. <br> A qualquer momento um de nossos atendentes entrará em contato. <br> O prazo máximo é de 24 horas.<br> O número do seu pedido é <b>"&id_pedido&"</b></p><p>Em caso de dúvidas ligue em nossa central: (11) 4198 - 4270</p><p><br> <strong> ESTOQUE</strong><br> Nossa equipe de vendedores estará analisando seu pedido, checando se todos os produtos orçados estão em nosso estoque.<br> Caso fique faltando algum produto, um de nossos vendedores entrará em contato por e-mail ou telefone.</p><p><strong>PAGAMENTO</strong><br> Para sua segurança nosso departamento financeiro aguarda uma posição do ESTOQUE apos a confirmação dos produtos<br> será realizada uma breve analise para aprovação do seu credito.<br> Apos esta aprovação entraremos em contato passando os dados para o pagamento.</p><p>Os pedidos feitos com cartão de crédito, o débito do mesmo será feito apenas no momento do envio das suas compras.</p><p> Já os pedidos cujo o pagamento mediante depósito, transferência bancária, Cheque pré-datado ou boleto on-line pedimos que sejam pagos apenas após o contato via telefone ou e-mail da nossa central de atendimento, contato esse que será feito em até 24 horas.</p><p><br>"
mensagem = mensagem & "<strong>SEU PEDIDO</strong><br>Confira os itens do pedido ["&id_pedido&"] no qual foi solicitado orçamento:</p>"
sqlPedidos = "SELECT * FROM TB_PEDIDO_PRODUTO WHERE ID_PEDIDO="&id_pedido&""
set rsPedidos = conexao.execute(sqlPedidos)
Do while rsPedidos.eof = false
mensagem = mensagem & "<p> <strong>Item escolhido:</strong> "& rsPedidos("DESCRICAO_PRODUTO") &" / Qtd: "& rsPedidos("QTDE") &"<br>"
sqlValorProduto = "SELECT TAB,PRECO2 FROM Produto WHERE ID="&rsPedidos("ID_PRODUTO")&""
set rsValorProduto = conexao.execute(sqlValorProduto)
if rsValorProduto.eof = false then
if isnull(rsValorProduto("PRECO2")) = false and rsValorProduto("PRECO2") <> 0 then
subtotal = rsValorProduto("PRECO2") * rsPedidos("QTDE")
mensagem = mensagem & "Preço Unitário: "& formatCurrency(rsValorProduto("PRECO2")) &" | Sub-Total.....: "& formatCurrency(subtotal) &"</p>"
else
subtotal = rsValorProduto("TAB") * rsPedidos("QTDE")
mensagem = mensagem & "Preço Unitário: "& formatCurrency(rsValorProduto("TAB")) &" | Sub-Total.....: "& formatCurrency(subtotal) &"</p>"
end if
total = total + subtotal
end if
rsPedidos.movenext
Loop
mensagem = mensagem & "<p>-----------------------------------------------------------------------------<br>"
mensagem = mensagem & "Valor total em Produtos: "& formatCurrency(total) &"<br>"
mensagem = mensagem & "Valor do Frete...: Aguarde o contato de um vendedor<br><br>"
mensagem = mensagem & "<strong>Total do Pedido</strong>: "& formatCurrency(total) &" <br>"
mensagem = mensagem & "-----------------------------------------------------------------------------</p>"
mensagem = mensagem & "<p><strong>INFORMAÇÃO PARA ENTREGA</strong><br><br>"
mensagem = mensagem & "Cliente: "&nome&" <br>"
mensagem = mensagem & "Endereço: "& endereco & "nº " & numero & " - " & complemento & " - BAIRRO: "&bairro&"<br>"
mensagem = mensagem & "Cidade..: "&cidade&" <br>"
mensagem = mensagem & "Estado.: "&estado&"<br>"
mensagem = mensagem & "CEP.: "&CEP&"<br>"
mensagem = mensagem & "Forma de Pagamento escolhida: "&forma_pagamento&"</p>"
mensagem = mensagem & "<p> Lembre-se de que os dados acima devem estar corretos e completos para não haver demora e dificuldade na entrega do pedido.<br> Caso haja algum erro, pedimos a gentileza que nos envie um e-mail para atendimento@cobequi.com.br ou ligue para nossa central de atendimento (11) 4198 - 4270 para que as correções sejam feitas.</p><p><br> Atenciosamente,</p><p> Atendimento ao Cliente Cobequi<br> www.cobequi.com.br<br></p>"
Mailer.Subject = "Confirmação de Pedido"
Mailer.BodyText = mensagem
If Mailer.SendMail Then
erro = "Mensagem enviada com sucesso"
Else
erro = "Erro " & Mailer.Response
End If
Set Mailer = nothing
response.Redirect("pedido_concluido.asp?erro="&erro&"")
%>
o erro indica que há menos colunas da declaração INSERT do que os valores especificados na cláusula VALUES. O número de valores na cláusula VALUES deve corresponder ao número de colunas especificado na declaração INSERT.
Ainda não sei oque é!!!
Se puderem me ajudar fico grato.
Qualquer dica é valida.
Carregando comentários...