Ir para conteúdo

POWERED BY:

Arquivado

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

brunocampos

Como contornar esse erro?

Recommended Posts

Alow pessoal!

 

O código abaixo está me retornando um erro que até então eu não tinha visto. Alguém poderia me explicar o que está acontecendo, estou utilizando um BD feito no Access.

 

<%

'Criando conexão com Banco de Dados

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.Open "gondola"

 

dim sql, rs, quantidade, cod_produto, cod_cliente, preco_unitario

 

if Request.Form("enviando") = "sim" then

quantidade = int(Request.Form("Quantidade"))

cod_produto = int(Request.Form("CodProduto"))

preco_unitario = csng(Request.Form("Preco"))

cod_cliente = int(Session("cod_cliente"))

 

Sql = "SELECT * FROM Produtos WHERE cod_produto = " & cod_produto

Set RS = conexao.execute(Sql)

if quantidade > Rs("Estoque") then

Response.Write "Impossível realizar a compra, pois o estoque atual do livro é " & Rs("estoque") & "<br>"

else

Sql = "INSERT INTO Carrinho(cod_produto,cod_cliente,quantidade,preco_unitario) "

Sql = Sql & "VALUES (" & cod_produto & "," & cod_cliente & ", "

Sql = sql & quantidade & "," & preco_unitario & ")"

conexao.execute(Sql) Response.Redirect ("comprados.asp")

end if

else

Dim Cod

Cod = int(Request.QueryString("cod_produto"))

Sql ="SELECT * FROM Produtos, Categorias WHERE Produtos.cod_categoria = Categorias.cod_categoria AND cod_produto = "& cod

Set Rs = conexao.execute(Sql)

 

%>

<table width=100% border=0 cellpadding=0 cellspacing="0" class="texto">

<tr>

<td width="21%"> Produto: </td>

<td width="79%"> <%=Rs("nome_produto")%> </td>

</tr>

<tr>

<td>Categoria:</td>

<td><%=RS("nome_categoria")%> </td>

</tr>

<tr>

<td>Preço:</td>

<td> <% Response.Write formatnumber(RS("preco_unitario"),2)

preco = RS("preco_unitario")

%> </td>

</tr>

<form method=post action=sacola.asp >

<input type=hidden name=enviando value=sim>

<input type=hidden name=CodProduto value="<%=cod%>">

<input type=hidden name=Preco value="<%= preco %>">

<tr>

<td>Quantidade:</td>

<td> <input type=text name=Quantidade size=5> </td>

</tr>

<tr>

<td colspan= 2 align=center> <p>

<input name="I1" type="image" src="btn_nocarrinho.gif" width="106" height="29" border="0">

</p></td>

</tr>

</form></font>

<%

end if

conexao.Close

%>

 

O erro retornado é esse:

 

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

 

[Microsoft][Driver ODBC para Microsoft Access] Número de valores da consulta e campos de destino não coincidem.

 

/lagondola/sacola.asp, line 137

 

A linha em negrito no código é a 137. Por isso não sei o que fazer pois o comando para executar a instrução SQL está correto :D . Ou estou enganado?

 

Obrigado galera!

Bruno Campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sql = "INSERT INTO Carrinho(cod_produto,cod_cliente,quantidade,preco_unitario) "

Sql = Sql & "VALUES (" & cod_produto & "," & cod_cliente & ", "

Sql = sql & " "quantidade & "," & preco_unitario & ")"

 

Veja se você não esqueceu alguma aspas... estão em negrito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sql = "INSERT INTO Carrinho(cod_produto,cod_cliente,quantidade,preco_unitario) "

Sql = Sql & "VALUES (" & cod_produto & "," & cod_cliente & ", "

Sql = sql & " " & quantidade & "," & preco_unitario & ")"

 

 

e tb não esqueça do "&", que nem eu esqueci de colocar agora...

Compartilhar este post


Link para o post
Compartilhar em outros sites

simples, você está tentando cadastrar vamos supor 8 valores, só q só tem 7 tabelas, ou vice versa!!!firmas?falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, se eu contar que o erro eram com as aspas simples :D ? É, como é dura a nossa vida não? A quantidade de vezes que li e reli esse código não está no gibi... mas bola pra frente. :ph34r: Obrigado pela ajuda galera! Estamos aí!Bruno Campos

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.