Ir para conteúdo

POWERED BY:

Arquivado

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

Leandro D.

[Resolvido] INSERT dando erro 80004005

Recommended Posts

Pessoal, estou migrando um sistema intranet do IIS 5.1 (XP) para o IIS 7.5 (Seven), mas estou tendo alguns problemas. Alguns eu consegui resolver, mas tens uns que de tanto tentar não consigo enxergar a solução (ou erro). Tenho uma página chamada cad_user.asp que recebe os dados de um formulário e verifica se existe um usuário com o valor da variavel "nome_exib". Se não existir, o valor de cadastra é igual a true e se exister o valor é false. Abaixo ele verifica se cadastra é igual a true, se for era para ele cadastrar. Caso contrário ele não cadastra e continua. Ao preencher o formulário com um nome que já existe no banco de dados, funciona legal, avisa que não foi cadastrado. Mas quando entro com um usuário que eu sei que não tem no banco de dados dá um erro. Veja a estrutura da minha página:

<%
Function GerarRandomize(Valores)
Dim Numeros : Numeros = "0123456789ABCDEFGHIJKL"
Randomize
For I = 1 To Valores
	Dim Num : Num = Mid(Numeros, Int(35 * Rnd) + 1, 1)
	Dim Chave : Chave = Chave + Num
Next
GerarRandomize = Chave
End Function

Dim objConn, objRS, nome_user, nome_exib, pass, depto, email, situacao, id, questao, resposta, filePath
nome_exib=request.querystring("nome_exib")
nome_user=request.querystring("nome_user")
pass=request.querystring("pass")
depto=request.querystring("depto")
email=request.querystring("email")
questao=request.querystring("questao")
resposta=request.querystring("resposta")
situacao=request.querystring("situacao")
id=(GerarRandomize(80))
filePath=Server.MapPath("../Dados/banco_dados.mdb")
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
Set objRS=Server.CreateObject("ADODB.Recordset")
Set objRS=objConn.Execute("SELECT * FROM usuarios WHERE nome_exib='"&nome_exib&"'")
If ObjRS.EOF Then
Cadastra=true
Else
Cadastra=false
End If
objConn.Close

If cadastra=true Then
Dim objConn2, objRS2
Set objConn2=Server.CreateObject("ADODB.Connection")
objConn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
Set objRS2=objConn2.Execute("INSERT INTO usuarios (nome_user, nome_exib, senha, departamento, email, aprovado, questao, resposta, id_sistema) VALUES ('"&nome_user&"','"&nome_exib&"','"&pass&"','"&depto&"','"&email&"','"&situacao&"','"&questao&"','"&resposta&"','"&id&"')")
Session("info")=request.querystring("nome_exib")
Session("cadastrou")=1
Response.redirect("../default.asp")
Else
Session("info")=request.querystring("nome_exib")
Session("cadastrou")=2
Response.redirect("../default.asp")
End If
%>

O erro que aparece no browser é esse:

Microsoft JET Database Engine erro '80004005'

 

A operação deve usar uma consulta atualizável.

 

/Intranet/Pages/cad_user.asp, linha 38

O mais interessante (e estranho pra mim) é que isso funcionava tranquilo no IIS 5.1 do XP. Alguém pode me dar uma luz???

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso geralmente é erro de permissão nos arquivos, habilite os privilégios administrativos na pasta e arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso geralmente é erro de permissão nos arquivos, habilite os privilégios administrativos na pasta e arquivo

xanburzum, tem como você me orientar como fazer isto? Porque consultar no banco ele consulta. Tem alguma screen ou passo-a-passo deste procedimento de permissões? No outro post que você me ajudou você também informou isto. Pelo que eu vi, está com controle total. Se você puder me ajudar eu agradeço, de Win 7 e IIS 7.5 sou meio novato cara :P . Pelos seus conhecimentos, há algum erro na programação da página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns servidores não habilitam a permissão de escrita em pastas. Você verá a importância dessa permissão caso queira manipular arquivos; no caso de upload eles não poderão ser carregados, dando o seguinte erro: "Can't open file for writing".

 

Para solucionar esse problema você deve configurar o IIS para que o usuário tenha permissão de escrita e leitura na pasta especificada. Para habilitar essa função, siga os passos a baixo.

 

 

Abra o IIS e clique com o botão direito sobre o site que deseja habilitar a permissão de escrita.

Vá em Propriedades, aparecerá uma janela cujo nome é Propriedades do NomeDoSite.

Clique na última opção, que tem o nome Pasta Base.

Nesta nova tela, abaixo do campo Caminho local: onde estarão algumas propriedades da pasta, clique em Ler, Gravar e Registro de Acesso.

 

 

 

 

Com isso você terá habilitado a pasta para leitura e gravação. Mas... isso não é tudo! Você ainda deve selecionar a que o usuário terá acesso... (mostrar, ler, adicionar e ler, alterar e controle total).

 

Para fazer isso visualize a pasta onde ficarão os arquivos. Vá em Propriedades da pasta, clicando com o botão direito sobre. Abrirá uma janela com o nome Propriedades de NomeDaPasta.

 

Clique na aba cujo nome é Segurança. Apareceram três opções: Permissão, Auditoria e Proprietários. Clique em Permissões, e na próxima tela clique em substituir permissões em arquivos existentes. Adicione um usuário clicando em adicionar.

 

Na nova janela clique novamente em adicionar (desta vez adicione o usuário desejado), clique em tipo de acesso e escolha o tipo necessário de acesso que o usuário terá, agora saia clicando no OK, e pronto!

 

Você liberou a pasta para leitura e escrita e também determinou o usuário que terá acesso a mesma. Com isso você pode começar a testar normalmente seus fontes referentes a manipulação de arquivos e pastas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns servidores não habilitam a permissão de escrita em pastas. Você verá a importância dessa permissão caso queira manipular arquivos; no caso de upload eles não poderão ser carregados, dando o seguinte erro: "Can't open file for writing".

 

Para solucionar esse problema você deve configurar o IIS para que o usuário tenha permissão de escrita e leitura na pasta especificada. Para habilitar essa função, siga os passos a baixo.

 

 

Abra o IIS e clique com o botão direito sobre o site que deseja habilitar a permissão de escrita.

Vá em Propriedades, aparecerá uma janela cujo nome é Propriedades do NomeDoSite.

Clique na última opção, que tem o nome Pasta Base.

Nesta nova tela, abaixo do campo Caminho local: onde estarão algumas propriedades da pasta, clique em Ler, Gravar e Registro de Acesso.

 

 

 

 

Com isso você terá habilitado a pasta para leitura e gravação. Mas... isso não é tudo! Você ainda deve selecionar a que o usuário terá acesso... (mostrar, ler, adicionar e ler, alterar e controle total).

 

Para fazer isso visualize a pasta onde ficarão os arquivos. Vá em Propriedades da pasta, clicando com o botão direito sobre. Abrirá uma janela com o nome Propriedades de NomeDaPasta.

 

Clique na aba cujo nome é Segurança. Apareceram três opções: Permissão, Auditoria e Proprietários. Clique em Permissões, e na próxima tela clique em substituir permissões em arquivos existentes. Adicione um usuário clicando em adicionar.

 

Na nova janela clique novamente em adicionar (desta vez adicione o usuário desejado), clique em tipo de acesso e escolha o tipo necessário de acesso que o usuário terá, agora saia clicando no OK, e pronto!

 

Você liberou a pasta para leitura e escrita e também determinou o usuário que terá acesso a mesma. Com isso você pode começar a testar normalmente seus fontes referentes a manipulação de arquivos e pastas.

xanburzum, agora deu certo. Faltava isso mesmo. Agora com as permissões, cadastra normalmente. Muito obrigado por resolver mais uma pra mim. Aproveitando dê uma olhada em uma outra dúvida minha que envolve este código (outro post).

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.