Ir para conteúdo

POWERED BY:

Arquivado

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

Digon

[Resolvido] Erro ao enviar o produto ao banco de dados acess

Recommended Posts

Olá

 

tive que mudar um formulario a pedido de cliente, e removi alguns campos que não seriam mais uteis ,

mas na hora de enviar diz:

 

 

 

Microsoft JET Database Engine error '80040e14'

 

Number of query values and destination fields are not the same.

O número de valores da pergunta e os campos de destino não são o mesmo.

 

admin/incluir_produto.asp, line 27

 

 

<%
If Session("admin") <> "" Then

If Not IsEmpty( Request.Form ) Then

  '# Se os campos do formulário estiverem preenchidos, exceto o campo do código, que pode estar em branco
  If Session("categoria") <> "" AND Session("subcategoria") <> "" Then

	'# Cria um objeto de conexão com o banco de dados
	Set Conexao = Server.CreateObject("ADODB.Connection")

	'# abre a conexão com o banco de dados
	Conexao.Open Application("cnx_cadastro_mmzerep")

	'# Comando SQL que inclui na tabela clientes todos os dados do cliente
	ComandoSQL = "INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) "
	ComandoSQL = ComandoSQL & " VALUES ( '"
  

	ComandoSQL = ComandoSQL & Request.Form("Conteudo") & "', "
	ComandoSQL = ComandoSQL & Session("categoria") & ", "
	ComandoSQL = ComandoSQL & Session("subcategoria") & ", '"
	ComandoSQL = ComandoSQL & Request.Form("Produto") & "', '"
	ComandoSQL = ComandoSQL & Request.Form("Descricao") & "', "
	
	'# abre a tabela Produtos e inclui o produto no banco de dados
	Set Produto = Conexao.Execute(ComandoSQL)
	
	Set Produto = Nothing
	
   '# Comando SQL que inclui na tabela clientes todos os dados do cliente
	ComandoSQL = "SELECT Top 1 * FROM Produtos ORDER BY ID_Produto DESC "
	'# abre a tabela Produtos e recupera o id do produto no banco de dados

	Set bd = Server.CreateObject("ADODB.Recordset")
	bd.CursorLocation = 2
	bd.CursorType = 0
	bd.LockType = 3
	bd.Open ComandoSQL, Conexao,,, &H0001
	bd("Detalhes") = Request.Form("Detalhes")
	bd.UpdateBatch
	bd.Requery
	
	url = Request.ServerVariables("SCRIPT_NAME") & "?detalhes=sim&categoria=" & bd("Categoria") & "&subcategoria=" & bd("Subcategoria") & "&id=" & bd("Id_Produto")
	
	Set bd = Nothing
	
	Conexao.Close
Agradeço pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/coolio.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa

 

O seu insert está errado, você tem 4 campos Categoria, Subcategoria, Produto, Descricao e está inserindo 5 Conteudo, categoria, subcategoria, Produto, Descricao

 

pelo visto está faltando o campo Conteudo que está na tabela de produtos

 

ComandoSQL = "INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) "
	ComandoSQL = ComandoSQL & " VALUES ( '"  
	ComandoSQL = ComandoSQL & Request.Form("Conteudo") & "', "
	ComandoSQL = ComandoSQL & Session("categoria") & ", "
	ComandoSQL = ComandoSQL & Session("subcategoria") & ", '"
	ComandoSQL = ComandoSQL & Request.Form("Produto") & "', '"
	ComandoSQL = ComandoSQL & Request.Form("Descricao") & "', "

 

Abraços ahhh ainda tem um outro problema a virgula no final

 

Resumindo o seu insert está errado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa

 

O seu insert está errado, você tem 4 campos Categoria, Subcategoria, Produto, Descricao e está inserindo 5 Conteudo, categoria, subcategoria, Produto, Descricao

 

pelo visto está faltando o campo Conteudo que está na tabela de produtos

 

ComandoSQL = "INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) "

ComandoSQL = ComandoSQL & " VALUES ( '"

ComandoSQL = ComandoSQL & Request.Form("Conteudo") & "', "

ComandoSQL = ComandoSQL & Session("categoria") & ", "

ComandoSQL = ComandoSQL & Session("subcategoria") & ", '"

ComandoSQL = ComandoSQL & Request.Form("Produto") & "', '"

ComandoSQL = ComandoSQL & Request.Form("Descricao") & "', "

 

 

Abraços ahhh ainda tem um outro problema a virgula no final

 

Resumindo o seu insert está errado

Eu removi o Conteudo

e deu o seguinte erro

 

Syntax error (missing operator) in query expression ''199, 232, 'teste2', 'teste2','.

 

/mmzerep/admin/incluir_produto.asp, line 24

 

Você falou de virgula, por favor poderia ser mais claro! Pois sou um pouco novo no ASP

http://forum.imasters.com.br/public/style_emoticons/default/coolio.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retire a virgula que se encontra depois do request da descrição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retire a virgula que se encontra depois do request da descrição.

ComandoSQL = "INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) "
	ComandoSQL = ComandoSQL & " VALUES ( '"
	ComandoSQL = ComandoSQL & Session("categoria") & ", "
	ComandoSQL = ComandoSQL & Session("subcategoria") & ", '"
	ComandoSQL = ComandoSQL & Request.Form("Produto") & "', '"
	ComandoSQL = ComandoSQL & Request.Form("Descricao") & "' )"

Vi um exemplo de um formulário de outro cliente e tirei a virgula e coloquei ) , achando que ia adiantar mais ocorre outro erro .

 

Microsoft JET Database Engine error '80040e10'

 

No value given for one or more required parameters.

 

/mmzerep/admin/incluir_produto.asp, line 24

http://forum.imasters.com.br/public/style_emoticons/default/coolio.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

você verificou se as variaveis que esta sendo colocadas no VALUEs, esta passando com valor ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica os campos da tabela com os campos do INSERT. Veja se está correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica os campos da tabela com os campos do INSERT. Veja se está correto.

Então verifiquei os campos e estão normais.

 

 

Transformar os números em inteiros?

 

zrageburn você poderia ser mais especifico, pois não entendi o que você disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o tipo de dados no banco, pois se você estiver, por exemplo passando um valor string em uma campo numérico ele não aceita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o tipo de dados no banco, pois se você estiver, por exemplo passando um valor string em uma campo numérico ele não aceita.

Verifiquei o produto e a descrição são tipos de dados texto, já o Detalhes é tipo Memorando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte, altere parte do código assim:

	ComandoSQL = ComandoSQL & Request.Form("Descricao") & "', "
Response.Write "ComandoSQL = "& ComandoSQL
Response.END
'# abre a tabela Produtos e inclui o produto no banco de dados
Set Produto = Conexao.Execute(ComandoSQL)

E poste o Resultado para nós.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte, altere parte do código assim:

ComandoSQL = ComandoSQL & Request.Form("Descricao") & "', "
	Response.Write "ComandoSQL = "& ComandoSQL
	Response.END
	'# abre a tabela Produtos e inclui o produto no banco de dados
	Set Produto = Conexao.Execute(ComandoSQL)
E poste o Resultado para nós.

 

Bom ele não dá erro ao enviar

mas aparece:

ComandoSQL = INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) VALUES ( '205, 247, teste1, teste1',

http://forum.imasters.com.br/public/style_emoticons/default/coolio.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, substitua o seu ComandoSQL por esse:

	ComandoSQL = "INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) "
ComandoSQL = ComandoSQL & "VALUES ("
ComandoSQL = ComandoSQL & Session("categoria") &; ","
ComandoSQL = ComandoSQL & Session("subcategoria") &; ","
ComandoSQL = ComandoSQL &" '"& Request.Form("Produto") &"',"
ComandoSQL = ComandoSQL &" '"& Request.Form("Descricao") &"');"

Retire o trecho que solicitei mais acima e teste novamente.

 

O erro estava na presença de uma ' (aspa simples) no início dos Values de seu INSERT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, substitua o seu ComandoSQL por esse:

ComandoSQL = "INSERT INTO Produtos (Categoria, Subcategoria, Produto, Descricao ) "
	ComandoSQL = ComandoSQL & "VALUES ("
	ComandoSQL = ComandoSQL & Session("categoria") &; ","
	ComandoSQL = ComandoSQL & Session("subcategoria") &; ","
	ComandoSQL = ComandoSQL &" '"& Request.Form("Produto") &"',"
	ComandoSQL = ComandoSQL &" '"& Request.Form("Descricao") &"');"
Retire o trecho que solicitei mais acima e teste novamente.

 

O erro estava na presença de uma ' (aspa simples) no início dos Values de seu INSERT.

Graças aos Deuses de Olimpía deu certo , só alterei apenas uma coisa nesse comando:

ComandoSQL = ComandoSQL & Session("categoria") & ","
	ComandoSQL = ComandoSQL & Session("subcategoria") & ","
Removi o ; e funcionou

Agradeço a todos que quebraram a cuca junto comigo para tentar resolver esse mistério http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif

Valeu Salgado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, estranho ter aparecido os ";", não me lembro de tê-los digitado. Mas que bom que conseguimos ajudar.

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.