Ir para conteúdo

POWERED BY:

Arquivado

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

kadix

erro INSERT INTO

Recommended Posts

Oi pessoal,

Estou com um probleminha há um tempão, já refiz tudo tentando descobrir onde estou errando e não consigo ver o erro, talvez vocês me ajudem.

ao enviar dados de uma página para o BD, ocorre o seguinte erro e os dados não são adicionados no banco de dados:

 

ERRO

============================================

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução INSERT INTO.

 

/teste/processo.asp, line 123

 

===============================

Página com o erro em vermelho da linha 123

 

 

sql= "INSERT INTO ordempedidos (pedido_id,produto_id,quantidade,precounitario) values (" & ordem_id & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"

set rsorderitems=db.execute(sql)

end if

next

 

================================

 

Existe algum meio para identificar este erro? Já comparei tudo, item por item,

palavra por palavra, ai apaguei tudo e fiz tudo denovo e continua o mesmo erro. Alguém me ajuda please!

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpem, digitei o código errado

é este aqui:

 

sql= "INSERT INTO ordempedidos (pedido_id,produto_id,quantidade,precounitario) values (" & ordem_id & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"

set rsordempedidos=db.execute(sql)end if

next

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi gata,tem certeza que todos os campos sao numéricos ?

Oi Gastão, tudo joinha?Acabei de verificar mais uma vez só pra ter certeza,são numericos sim.não sei o que fazer :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que deve estar na matriz entao .....

você não tem nenhum exemplo de INSERT para eu compararquem sabe assim eu consigo ver onde estou errando entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que deve estar na matriz entao .....

você não tem nenhum exemplo de INSERT para eu compararquem sabe assim eu consigo ver onde estou errando entende?
o insert tá certo, o errado deve ser a matrizposta ela toda aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que deve estar na matriz entao .....

você não tem nenhum exemplo de INSERT para eu compararquem sabe assim eu consigo ver onde estou errando entende?
o insert tá certo, o errado deve ser a matrizposta ela toda aí...
Espero que não esteja confuso...==========================================<%@ LANGUAGE = "VBScript" %><!-- #include file="db.asp" --><!-- #include file="config.asp" --><!-- #include file="functions.asp" --><!-- #include file="email.asp" --><%cctype=request.form("cctype")ccnumber=request.form("ccnumber")ccexpire=request.form("ccexpire")'Check if user is signed inif session("clientes_id")="" or session("clientes_id")=null then response.redirect("login.asp")end if'Check if anything in shopping cartIf IsArray(Session("cart")) = false Then Dim acart(19,1) Session("cart") = acart response.redirect("error.asp?msg=" & Server.URLEncode("Seu orçamento está ."))end ifacart=Session("cart")cempty=truefor i=lbound(acart) to ubound(acart) if acart(i,0)<>"" and acart(i,1)<>"" then cempty=false end ifnextif cempty then response.redirect("review.asp")end ifif session("fname")="" or session("lname")="" or session("endereco")="" or session("cidade")="" or session("estado")="" or session("cep")="" then response.redirect("payment.asp")end ifif session("fname")="" or session("lname")="" or session("endereco")="" or session("cidade")="" or session("estado")="" or session("cep")="" then response.redirect("checkout.asp") end if if enablecreditcard then '****************************************************************** 'VERIFY CREDIT CARD DETAILS '****************************************************************** ccmsg="" if cctype<>"visa" and cctype<>"americanexpress" and cctype<>"mastercard" and cctype<>"discover" then ccmsg=ccmsg & "You entered an unknown credit card.<br>" end if if not(isnumeric(ccnumber)) then ccmsg=ccmsg & "You must enter a valid credit card number.<br>" end if 'check the date if ccexpire="" or not(isdate(ccexpire)) then ccmsg=ccmsg & "You must enter a valid date.<br>" end if if ccmsg<>"" then response.redirect("payment.asp?ccmsg=" & Server.URLEncode(ccmsg)) end if '****************************************************************** end if 'To get orderid back we have to do things a litle differently Set rsorder = Server.CreateObject("ADODB.RecordSet") ' Open the table rsorder.Open "pedidos", strConn, adOpenKeySet, adLockPessimistic, adCmdTable ' Add a new record rsorder.AddNew rsorder("dfname") = session("fname") rsorder("dlname") = session("lname") rsorder("endereco") = session("endereco") rsorder("dcidade") = session("cidade") rsorder("destado") = session("estado") rsorder("dcep") = session("cep") rsorder("data")=date() & " " & time() rsorder("clientes_id")=Session("clientes_id") if enablecreditcard then rsorder("ccnumber")=request.form("ccnumber") rsorder("cctype")=request.form("cctype") rsorder("ccexpire")=request.form("ccexpire") end if ' Update the record rsorder.update ' Retrive the ID pedido_id = rsorder("pedido_id") ' Close the RecordSet rsorder.Close Set rsorder = Nothing ' In order to send an email confirmation, we need to build up the message body containing ' the items and quantity of the order bodyitems="" emailtotal=0 'Next we need to store each of the items for i=lbound(acart) to ubound(acart) if acart(i,0)<>"" and acart(i,1)<>"" then 'Look up price per unit set rsprice=db.execute("select preco,preco_venda,nome FROM produtos WHERE produto_id=" & acart(i,0)) if rsprice.eof then response.redirect("error.asp?msg=" & Server.URLEncode("We are unable to process your requst at present.")) end if if rsprice("preco_venda")="" or rsprice("preco_venda")=0 then currentprice=rsprice("preco") else currentprice=rsprice("preco_venda") end if bodyitems=bodyitems & acart(i,1) & " " & rsprice("nome") & " " & cursymbol & formatnumber(currentprice * acart(i,1)) & chr(13) emailtotal=emailtotal+(currentprice * acart(i,1)) Set rsordempedidos = Server.CreateObject("ADODB.RecordSet") sql= "INSERT INTO ordempedidos (pedido_id,produto_id,quantidade,precounitario) values (" & ordem_id & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")" set rsordempedidos.execute(sql) end if next bodyitems=bodyitems & "Grand Total: " & cursymbol & formatnumber(emailtotal) 'Finally, empty the cart Session("cart")=null%><html><head><title><%= storename %></title><body bgcolor="<%= bgcolor %>" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" text="<%= text %>" alink="<%= COLlight %>" link="<%= COLlight %>" vlink="<%= vlink %>"><font face="arial"><% header categorymenu%><center><table border=0> <td valign=top> <font face="helvetica" size="6" color="<%= COLdark %>"> <p align="left"> your order is being processed <br><font face="helvetica, arial" size="2" color="<%= text %>"> · Thank you for shopping with <%= storename %>.<br> <br><font face="helvetica, arial" size="3" color="<%= text %>"> Your order tracking number is <font face="helvetica, arial" size="3" color="<%= COLerror %>"> <b><%= orderid %></b><font face="helvetica, arial" size="3" color="<%= text %>">.<br> You should keep a record of this in case you need to contact us about your order.</b> </td></table><br><br><% footer %></body></html><%db.closeset db=nothing%>==========================================

Compartilhar este post


Link para o post
Compartilhar em outros sites

Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")sql= "INSERT INTO ordempedidos (pedido_id,produto_id,quantidade,precounitario) values (" & ordem_id & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"set rsordempedidos.execute(sql)

repare, tire o primeiro Set>>>>>>>>> Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")sql= "INSERT INTO ordempedidos (pedido_id,produto_id,quantidade,precounitario) values (" & ordem_id & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"set rsordempedidos.execute(sql)

repare, tire o primeiro Set>>>>>>>>> Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")
Retirei a linha e por enquanto permanece o mesmo erroeu ovu chorar ;) Gastão, to indo embora agoratipo, valeu demais sua ajuda e atençãomas só vou ver o forum agora amanha beleza?super abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")sql= "INSERT INTO ordempedidos (pedido_id,produto_id,quantidade,precounitario) values (" & ordem_id & "," & acart(i,0) & "," & acart(i,1) & "," & currentprice & ")"set rsordempedidos.execute(sql)

repare, tire o primeiro Set>>>>>>>>> Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")
Retirei a linha e por enquanto permanece o mesmo erroeu ovu chorar ;) Gastão, to indo embora agoratipo, valeu demais sua ajuda e atençãomas só vou ver o forum agora amanha beleza?super abraço
valeu gata!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser utilizar o ADO, ficaria assim:

Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")
Sql="select top 1 * from ordempedidos order by Pedido_Id desc" 'pega só o ultimo pedido
rsordempedidos.open sql,strConn, adOpenKeySet, adLockPessimistic, adCmdTable
rsordempedidos.addnew
rsordempedidos("Pedido_Id")= ordem_id
rsordempedidos("Produto_Id")= acart(i,1)
rsordempedidos("quantidade")= acart(i,0)
rsordempedidos("precounitario")= currentprice
rsordempedidos.update

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser utilizar o ADO, ficaria assim:

Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")Sql="select top 1 * from ordempedidos order by Pedido_Id desc" 'pega só o ultimo pedidorsordempedidos.open sql,strConn, adOpenKeySet, adLockPessimistic, adCmdTablersordempedidos.addnewrsordempedidos("Pedido_Id")= ordem_idrsordempedidos("Produto_Id")= acart(i,1)rsordempedidos("quantidade")= acart(i,0)rsordempedidos("precounitario")= currentpricersordempedidos.update
Oi Salgado!

 

Olha to me matando aqui pra descobrir onde está o erro

 

fiz o que você me passou e agora da erro de sintaxe na clausula FROM

linha 125 (em vermelho)

 

Set rsordempedidos = Server.CreateObject("ADODB.RecordSet")

Sql="select top 1 * from ordempedidos order by pedido_id desc" 'pega só o ultimo pedido

rsordempedidos.open sql,strConn, adOpenKeySet, adLockPessimistic, adCmdTablersordempedidos.addnew

rsordempedidos("pedido_id")= ordem_id

rsordempedidos("produto_id")= acart(i,1)

rsordempedidos("quantidade")= acart(i,0)

rsordempedidos("precounitario")= currentprice

rsordempedidos.update

 

ta muito difícil?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só pra inserir, né?lá vai uma dica de ADO

Set Ors = Server.CreateObject("adodb.recordset")    Ors.Open "nome_da_tabela",oConn,1,3,2      Ors.AddNew    Ors("nome") = nome    Ors("email") = email    Ors("data") = data    Ors("cidade") = cidade    Ors("uf") = uf    Ors.Update  Ors.CloseSet Ors = NothingSe você indicar o nome da tabela abra com as opções "1,3,2"Se você indicar um Select abra com as opções "2,2,1"Se você indicar uma consulta ou Stored Procedure não indique nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só pra inserir, né?lá vai uma dica de ADO

Set Ors = Server.CreateObject("adodb.recordset")     Ors.Open "nome_da_tabela",oConn,1,3,2      Ors.AddNew     Ors("nome") = nome     Ors("email") = email     Ors("data") = data     Ors("cidade") = cidade     Ors("uf") = uf    Ors.Update   Ors.CloseSet Ors = NothingSe você indicar o nome da tabela abra com as opções "1,3,2"Se você indicar um Select abra com as opções "2,2,1"Se você indicar uma consulta ou Stored Procedure não indique nada

Meninosnão deu certo :) acho que isso indica que o problema dve estar em outras páginaseu vou refazer tudo de novo com muita atençãoobrigada pela força, vocês são uns amores

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.