Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estava tentando uma atualização nos registros do banco de dados, e me retornou o seguinte erro:
>
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x5f08 Thread 0x860c DBC 0x197a2f4 Jet'.
/loja/atualiza_comp.asp, line 99
A linha é a do Update mesmo
sql = "update tb_produtos set categoria='" & categoria & "', cod_tsi= '" & cod_tsi & "', nome= '" & nome_prod & "', descricao= '" & descricao & "', foto= '" & cfoto & "', preco1= '" & preco1 & "', preco2= '" & preco2 & "', preco3= '" & preco3 & "', preco4= '" & preco4 & "', preco5= '" & preco5 & "', preco6= '" & preco6 & "', preco7= '" & preco7 & "', preco8= '" & preco8 & "', preco9= '" & preco9 & "', preco10= '" & preco10 & "', caracteristica1= '" & caracteristica1 & "', caracteristica2= '" & caracteristica2 & "', caracteristica3= '" & caracteristica3 & "', caracteristica4= '" & caracteristica4 & "', caracteristica5= '" & caracteristica5 & "', caracteristica6= '" & caracteristica6 & "', caracteristica7= '" & caracteristica7 & "', caracteristica8= '" & caracteristica8 & "', caracteristica9= '" & caracteristica9 & "', caracteristica10= '" & caracteristica10 & "', caracteristica11= '" & caracteristica11 & "', caracteristica12= '" & caracteristica12 & "', itemincluso1= '" & itemincluso1 & "', itemincluso2= '" & itemincluso2 & "', itemincluso3= '" & itemincluso3 & "', itemincluso4= '" & itemincluso4 & "', itemincluso5= '" & itemincluso5 & "', itemincluso6= '" & itemincluso6 & "', itemincluso7= '" & itemincluso7 & "', itemincluso8= '" & itemincluso8 & "', itemincluso9= '" & itemincluso9 & "', itemincluso10= '" & itemincluso10 & "', info1= '" & info1 & "', info2= '" & info2 & "', info3= '" & info3 & "', info4= '" & info4 & "', info5= '" & info5 & "', sis_operacional= '" & sist_operacional & "', garantia= '" & garantia & "', marca= '" & marca & "', promocao= '" & promocao & "' where cod_produto = "& request("cod_produto")
set rsquery = conexao.execute(sql)
Conferi o código e não havia nenhum erro de nome de tabela e afins. Tentei colocar antes do sql em si um Response.Write(sql) para ver o erro detalhadamente, porém nada. Nunca havia visto este erro antes, qual será?Continua o mesmo erro...
Acho que está no request...
where cod_produto = "& request("cod_produto")
Tentei ao invés de somente Request, coloquei Request.QueryString e deu este erro
>
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'cod_produto='.
where cod_produto=" & Request.QueryString("cod_produto")
Editando....Tentei esta alteração,
If Request.QueryString("cod_produto") <> "" then
//a linha do update que está igualmente lá em cima, inclusive com conexao.execute(sql)
end ifE deu erro, não é alterado nada na tabela!
qual o erro atual? o priemiro erro poderia ser apenas o fato de estar tentando usar o site com o DB aberto em modo exclusivo
O "erro" atual é que não altera nada no banco de dados, o resultado é que o formulário foi atualizado com sucesso, porém na verdade, no bd, alterou nada. Eu testei com o bd fechado, com o código utlizado antes, sem o if, e continuou dando aquele erro '80004005'...
antes de executar escreve na tela o seu sql e poste aqui
Coloquei Response.Write(sql) antes do conexao.execute(sql)...ele retornou nada...somente que a atualização havia sido feito com sucesso, mas na verdade não atualizou no bd...
nao é esse o erro mas voce nao rpecisar setar RS para update e insert
faça apenas
conexao.execute(sql)
e antes ponha
response.write sql
response.end
e poste aqui o resultado
Fiz assim:
' todo o update...
response.write sql
response.end
conexao.execute(sql)
O erro é o mesmo postado acima, mesmo com o bd fechado...há possibilidade de ser erro do host?
>
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x69dc Thread 0x104 DBC 0x19924fc Jet'.
/loja/atualiza_comp.asp, line 102
qual a linha do erro?
Nessa parte:
sql = sql & "where cod_produto=" & Request("cod_produto")
O erro é do query string suponho, lembrando que cod_produto é o campo de auto-numeração
como voce sabe que é nessa parte? qual é a linha 102?
A linha 102 aponta para esta parte sql = sql & "where cod_produto=" & Request("cod_produto")...
por isto...é que tenho um formulário que recebe os valores do bd, depois de atualizar os dados no form, passa para esta página de atualização...aí que dá o erro...
mas como esta seu codigo?
la em cima postou como se estivesse tudo numa linha
sql = "update tb_produtos set categoria='" & categoria & "', cod_tsi= '" & cod_tsi & "', nome= '" & nome_prod & "', descricao= '" & descricao & "', foto= '" & cfoto & "', preco1= '" & preco1 & "', preco2= '" & preco2 & "', preco3= '" & preco3 & "', preco4= '" & preco4 & "', preco5= '" & preco5 & "', preco6= '" & preco6 & "', preco7= '" & preco7 & "', preco8= '" & preco8 & "', preco9= '" & preco9 & "', preco10= '" & preco10 & "', caracteristica1= '" & caracteristica1 & "', caracteristica2= '" & caracteristica2 & "', caracteristica3= '" & caracteristica3 & "', caracteristica4= '" & caracteristica4 & "', caracteristica5= '" & caracteristica5 & "', caracteristica6= '" & caracteristica6 & "', caracteristica7= '" & caracteristica7 & "', caracteristica8= '" & caracteristica8 & "', caracteristica9= '" & caracteristica9 & "', caracteristica10= '" & caracteristica10 & "', caracteristica11= '" & caracteristica11 & "', caracteristica12= '" & caracteristica12 & "', itemincluso1= '" & itemincluso1 & "', itemincluso2= '" & itemincluso2 & "', itemincluso3= '" & itemincluso3 & "', itemincluso4= '" & itemincluso4 & "', itemincluso5= '" & itemincluso5 & "', itemincluso6= '" & itemincluso6 & "', itemincluso7= '" & itemincluso7 & "', itemincluso8= '" & itemincluso8 & "', itemincluso9= '" & itemincluso9 & "', itemincluso10= '" & itemincluso10 & "', info1= '" & info1 & "', info2= '" & info2 & "', info3= '" & info3 & "', info4= '" & info4 & "', info5= '" & info5 & "', sis_operacional= '" & sist_operacional & "', garantia= '" & garantia & "', marca= '" & marca & "', promocao= '" & promocao & "' where cod_produto = "& request("cod_produto")
Bom está tudo numa só linha...somente a partir do where que coloquei assim:
sql = sql & " where cod_produto=" & Request("cod_produto")porém colocando tudo na mesma linha ou fazendo assim, dá o mesmo erro...
ah ta
beleza
todos os campos sao testo mesmo?
voce sempre fecha suas conexoes com o db?
Utilizando
conexao.close
set conexao = nothingContinua dando erro...
Alguns campos são do tipo memorando também...lembrando que eu estou usando um esquema de upload também...
e como esdta recupoerando os dados do form?
Bom, utilizei o código do tópico "Upload sem componentes", daqui do fórum (http://forum.imasters.com.br/index.php?showtopic=164376), utilizando por exemplo
cod_tsi = UploadRequest.Item("cod_tsi").Item("Value")
Aliás conferi o caminho do arquivo, e ele aponta corretamente para o banco de dados...
>
Tentei ao invés de somente Request, coloquei Request.QueryString e deu este erro
>
QUOTE
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'cod_produto='.
Neste erro acima ele acusou porque não retornou o código do request("cod_produto"), checa se está pegando o valor correto antes de montar a query.
Bem Anderson, o problema acima eu solucionei, mas ficou ainda aquele erro
General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x5f08 Thread 0x860c DBC 0x197a2f4 Jet'.
Os caminhos, os campos, os recordset's foram todos vistos e revistos, além de refazer este código mais uma vez...porém o erro continua :unsure:/>
O banco esta aberto? voce fecaha sempre suas conexoes?
Checa as permissões na pasta onde está o banco.
Eu fechei as conexões do banco...
Continuou o erro :mellow:/>
Já sobre as permissões de pasta, Anderson, não entendi...
Como deverei proceder?
Lembrando que esse mesmo banco, nessa mesma pasta, insere e exclui os dados direitinho, somente o update tá dando isto...
Tenta assim, dá um Response.Write da query, copia ela e cola numa consulta SQL no Access, e faz o teste, se funcionar terá que checar seu código, mas se der erro, aí você checa de que se trata.
bom, se você conferiu a query e está tudo ok tente isso
no lugar de
set rsquery = conexao.execute(sql)
coloque
conexao.execute(sql)