Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi pessoal, o que parecia uma coisa simples está exuzando a minha vida, acontece tenho um arquivo .mdb ele faz select mas o insert into não funciona, ele da o seguinte erro:
Microsoft JET Database Engine erro '80040e14'
Erro de sintaxe na instrução INSERT INTO.
Tirei o include e deixei tudo no mesmo asp para testar, mas não vai de jeito nenhum, o asp tem o seguinte:
Set Conexcao = Server.CreateObject("ADODB.Connection")
caminho_banco = Server.MapPath("../dados/dados.mdb")
conConecta = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & caminho_banco
Call Conexcao.open(conConecta)
sql = "Insert into usuario (user, password, nome, email) VALUES ('" & var_user & "', '" & var_pass & "', '" & var_nome & "', '" & var_email & "')"
response.write(sql)
Conexcao.Execute(sql)
Esse response.write está retornando Insert into usuario (user, password, nome, email) VALUES ('aa', 'aa', 'aa', 'aa')
Pensei que fosse configuração do IIS mas nem online está funcionando, alguem sabe o que pode ser isso que está acabando com a minha vida? J mudei os campos de data para texto pra ver se não era incompatibildade mas não foi :(
abraço,
Carneirinho
Hmm, eu alterei usuário para us, mas mesmo assim continua o erro, ele retornou:
Insert into usuario (us, password, nome, email) VALUES ('teste', 'teset', 'test', 'tet')
Microsoft JET Database Engine erro '80040e14'
Erro de sintaxe na instrução INSERT INTO.
eu usei aqui o adovbs.inc com:
RS.Addnew
RS("us") = Request("txtuser")
e foi de boa, mas to intrigado porque que o select não funciona, se quiser eu compacto os arquivos e posto pra você dar uma olhada, oh semana de zica, acho que meu anjo da guarda é estagiário.
Acho que a palavra "password" também possa ser reservada, faça um teste substituindo-a.
Abs.
coloque todas entre colchetes nao precisa mudar
vou ver se password é reservado mas por hora apenas adicione os colchetes e veja se continua com o erro de sintaxe
Não se é o caso mas eu costumo montar com uns detalhes a mais ... que seguem em negrito
Set Conexcao = Server.CreateObject("ADODB.Connection")
caminho_banco = Server.MapPath("../dados/dados.mdb")
conConecta = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & caminho_banco & "" * fecho aspas aqui
Call Conexcao.open(conConecta)
sql = "INSERT INTO usuario (user, password, nome, email) VALUES ('" & var_user & "', '" & var_pass & "', '" & var_nome & "', '" & var_email & "')"
response.write(sql)
Conexcao.Execute sql sem parenteses no execute
'fechar
Conexcao.Close
set Conexcao = Nothing
o erro continua nesta linah? o mesmo erro? colocou os colchetes em todos os campos
Oi Pessoal, desculpa a demora, ainda nã otestei pois os arquivos estão na empresa, só vou testar na segunda, o pior é que tenho o IIS instalado na maquina com outro sistema tb em asp e a mesma query funciona no outro sistema, mas vou testar a dica de vcs, a única coisa que estou vendo é na conexão do banco, em uma estou usando caminho fisico do pc do tipo c:.... dados.mdb e nesse estou usando ../../ porem a conexão vai porque os selects funcionam. Mas segunda vejo todas as opções e posto aqui. abraço!
no aguardo entao
Mudei no banco a tabela passwor pra senha e mesmo assim não foi, como seria colocar tudo em colchetes? testei essas duas querys:
sql = "Insert into usuario (us, password, nome, email) VALUES ('" & var_user & "', '" & var_pass & "', '" & var_nome & "', '" & var_email & "')"
sql = "INSERT INTO usuario (us) VALUE ('" & var_user & "'); INSERT INTO usuario (senha) VALUE ('" & var_pass & "'); INSERT INTO usuario (nome) VALUE ('" & var_nome & "'); INSERT INTO usuario (email) VALUE ('" & var_email & "')"
e não foi :(
Fala Carneirinho, beleza?
Então, testei aqui alterando na tabela o nome dos campos "user" e "password" e funcionou Ok com a "sql" anterior:
sql = "INSERT INTO usuario (us, pass, nome, email) VALUES ('" & var_user & "','"& var_pass &"','" & var_nome & "','" & var_email & "')"
O Mário sugeriu o uso de colchetes, e também funcionou sem a necessidade de alterar o nome dos campos na tabela (mais uma que aprendi com esse cara..):
sql = "INSERT INTO usuario ([user], [password], [nome], [email]) VALUES ('" & var_user & "','"& var_pass &"','" & var_nome & "','" & var_email & "')"
Veja se agora vai! Abs.
Acho que o problema era mesmo a palavra reservada, quando testei usei:
sql = "Insert into usuario (us, password, nome, email) VALUES ('" & var_user & "', '" & var_pass & "', '" & var_nome & "', '" & var_email & "')"
porem esqueci de trocar password pra senha, que tinha trocado no banco de dados, problemas de atenção, depois que o Public postou que funcionou dois dois modos (essa de colchetes é novo pra mim) tb foi normal, notei que só tinha esquecido mesmo de testar com o nome da tabela do banco certo, é estranho esse sql, quando você tem la um campo "senha" e busca pelo campo "password" ele não aceita :P
enfim, ta ai a faixa
"Agradeço a Public2004, Mário Monteiro, Sto. Expedito e a todos pela graça alcançada"
GHC
Tranquilo entao
Que bom qeu tudo foi resolvido
E quanto aos colchetes é otimo pois podemos continuar usando as palavras que mais sao sugestivas sem a preocupação se seriam reservadas
Coltumo usar muito este recurso
Abraços
Fala mestre - "user" é uma palavra reservada, substitua o nome do campo na tabela e testa ae...
Abs.