Ir para conteúdo

POWERED BY:

Arquivado

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

leozeferino

erro básico de inserção de dados no bd

Recommended Posts

Olá!

 

Fiz um sisteminha de inserção no banco de dados. Ele funciona normalmente na minha máquina. Porém, ao enviar para o servidor, ele dá o seguinte erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query. /admin/action_adicionar_noticia.asp, line 49

Vou colocar o código logo abaixo para vocês darem uma olhada. O que pode estar acontecendo?

 

<%nUSER = Session("USER")if nUSER = "" then%><script language="JavaScript">   alert('Você não está logado');   window.location.href='index.asp';</script><%else'Variáveis nCategoria = replace( request.form("categorias"), "'", "''" )nTitulo = replace( request.form("titulo"), "'", "''" )nTexto = replace( request.form("texto"), "'", "''" )nFonte = replace( request.form("fonte"), "'", "''" )if nCategoria = "" or nTitulo="" or nTexto="" or nFonte="" then%><script language="JavaScript">   alert('Você esqueceu de preencher algum campo. Todos os campos são obrigatórios.');   window.location.href='adicionar_noticia.asp';</script><%end if'Criando conexãoSet Conexao = Server.CreateObject ("ADODB.Connection")Conexao.Open "DBQ=" & Server.MapPath("../../data/noticias.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"   'Criando o RecordSet set rstRegistro=server.createobject("ADODB.recordset")   rstRegistro.cursorlocation=2  rstRegistro.cursortype=1  rstRegistro.locktype=3  rstRegistro.open "select * from Noticias where Titulo = '" & nTitulo & "'", Conexaoif not rstRegistro.eof then%><script language="JavaScript">   alert('Título já existente!Favor escolher outro');   window.location.href='adicionar_noticia.asp';</script> <%else rstRegistro.closeinserir = "Insert Into Noticias(Categoria,Titulo,Texto,Fonte) Values ('" & nCategoria & "', '" & nTitulo & "', '" & nTexto & "', '" & nFonte & "')"rstRegistro.open inserir, Conexao   (LINHA 49 - ERROOO)  %><script language="JavaScript">   alert('Notícia inserida com sucesso');   window.location.href='adicionar_noticia.asp';</script><%end ifend if%>

Desde já,

 

 

Valewsss!

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce está sem premissão de escrita em seu diretorio do db...

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce está sem premissão de escrita em seu diretorio do db...

Fala kra.Então, nem é isso. Já verifiquei com o servidor a pasta tem a permissão. Até tentei mudar de diretório, mas continuou o mesmo erro. Então, mudei a maneira de inserir os dados e apareceu outro erro.Vou postar o código e o erro aqui. Se tiver alguma dica...
<%nUSER = Session("USER")if nUSER = "" then%><script language="JavaScript">   alert('Você não está logado');   window.location.href='index.asp';</script><%else'Variáveis nCategoria = replace( request.form("categorias"), "'", "''" )nTitulo = replace( request.form("titulo"), "'", "''" )nTexto = replace( request.form("texto"), "'", "''" )nFonte = replace( request.form("fonte"), "'", "''" )if nCategoria = "" or nTitulo="" or nTexto="" or nFonte="" then%><script language="JavaScript">   alert('Você esqueceu de preencher algum campo. Todos os campos são obrigatórios.');   window.location.href='adicionar_noticia.asp';</script><%end if'Criando conexãoSet Conexao = Server.CreateObject ("ADODB.Connection")Conexao.Open "DBQ=" & Server.MapPath("../data/noticias.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"   'Criando o RecordSet set rstRegistro=server.createobject("ADODB.recordset")   rstRegistro.cursorlocation=2  rstRegistro.cursortype=1  rstRegistro.locktype=3  rstRegistro.open "select * from Noticias where Titulo = '" & nTitulo & "'", Conexaoif not rstRegistro.eof then%><script language="JavaScript">   alert('Título já existente!Favor escolher outro');   window.location.href='adicionar_noticia.asp';</script> <%else rstRegistro.close set rstReg=server.createobject("ADODB.recordset")   rstReg.cursorlocation=2  rstReg.cursortype=1  rstReg.locktype=3rstReg.open "select * from Noticias", Conexao  rstReg.addNew  rstReg("Categoria") = nCategoria  rstReg("Titulo") = nTitulo  rstReg("Texto") = nTexto  rstReg("Fonte") = nFonte  rstReg.Update		(LINHA 65 É ESSAAAAAAAAA)  %><script language="JavaScript">   alert('Notícia inserida com sucesso');   window.location.href='adicionar_noticia.asp';</script><%end ifend if%>
O ERRO É O SEGUINTE:
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only. /admin/action_adicionar_noticia.asp, line 65

Compartilhar este post


Link para o post
Compartilhar em outros sites
<%
nUSER = Session("USER")

if nUSER = "" then%>
<script language="JavaScript">
  alert('Você não está logado');
  window.location.href='index.asp';
</script><%else


'Variáveis

nCategoria = replace( request.form("categorias"), "'", "''" )
nTitulo = replace( request.form("titulo"), "'", "''" )
nTexto = replace( request.form("texto"), "'", "''" )
nFonte = replace( request.form("fonte"), "'", "''" )

if nCategoria = "" or nTitulo="" or nTexto="" or nFonte="" then%>
<script language="JavaScript">
  alert('Você esqueceu de preencher algum campo. Todos os campos são obrigatórios.');
  window.location.href='adicionar_noticia.asp';
</script><%end if


'Criando conexão
Set Conexao = Server.CreateObject ("ADODB.Connection")
Conexao.Open "DBQ=" & Server.MapPath("../data/noticias.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"


 'Criando o RecordSet
set rstRegistro=server.createobject("ADODB.recordset")

 rstRegistro.cursorlocation=2
 rstRegistro.cursortype=1
 rstRegistro.locktype=3


rstRegistro.open "select * from Noticias where Titulo = '" & nTitulo & "'", Conexao
if not rstRegistro.eof then%>
<script language="JavaScript">
  alert('Título já existente!Favor escolher outro');
  window.location.href='adicionar_noticia.asp';
</script>
<%else
rstRegistro.close


set rstReg=server.createobject("ADODB.recordset")
rstReg.open "select * from Noticias", Conexao,3,2

 rstReg.addNew
 rstReg("Categoria") = nCategoria
 rstReg("Titulo") = nTitulo
 rstReg("Texto") = nTexto
 rstReg("Fonte") = nFonte
 rstReg.Update

%><script language="JavaScript">
  alert('Notícia inserida com sucesso');
  window.location.href='adicionar_noticia.asp';
</script>
<%
end if
end if
%>

Tente com esse, fiz uma pequena alteração em seu segundo RecordSet. Outra coisa, não se esqueça de fechar e destruir Conexões e RecodSets.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra,Continua o mesmo erro.É estranho porque funciona normalmente no meu pc, mas no servidor não.Já contactei o suporte do servidor e eles não encontraram nenhum erro no servidor. Disseram que o erro está no código... :natalsad: :natalsad: Se tiver alguma idéia...Valewsss!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma editada no code:

<%
nUSER = Session("USER")

if nUSER = "" then%>
<script language="JavaScript">
  alert('Você não está logado');
  window.location.href='index.asp';
</script>
<%else
'Variáveis

nCategoria = replace( request.form("categorias"), "'", "''" )
nTitulo = replace( request.form("titulo"), "'", "''" )
nTexto = replace( request.form("texto"), "'", "''" )
nFonte = replace( request.form("fonte"), "'", "''" )

if nCategoria = "" or nTitulo="" or nTexto="" or nFonte="" then%>
<script language="JavaScript">
  alert('Você esqueceu de preencher algum campo. Todos os campos são obrigatórios.');
  window.location.href='adicionar_noticia.asp';
</script>
<%end if

'Criando conexão
Set Conexao = Server.CreateObject ("ADODB.Connection")
Conexao.Open "DBQ=" & Server.MapPath("../data/noticias.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"

 'Criando o RecordSet
set rstRegistro=server.createobject("ADODB.recordset")
rstRegistro.open "select * from Noticias where Titulo = '" & nTitulo & "'", Conexao,3,2

if not rstRegistro.eof then
 rstRegistro.close
 Set rstRegistro = Nothing

 Conexao.Close
 Set Conexao = Nothing%>
<script language="JavaScript">
  alert('Título já existente!Favor escolher outro');
  window.location.href='adicionar_noticia.asp';
</script>
<%else
 rstReg.addNew
 rstReg("Categoria") = nCategoria
 rstReg("Titulo") = nTitulo
 rstReg("Texto") = nTexto
 rstReg("Fonte") = nFonte
 rstReg.Update%>
<script language="JavaScript">
  alert('Notícia inserida com sucesso');
  window.location.href='adicionar_noticia.asp';
</script>
<%end if
end if%>

Testa e diz se continua com erro. Se continuar verifique pelo FTP se existe um arquivo com o mesmo nome de seu BD e a extensão LDB. Se existir o BD está bloqueado temporáriamente.

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.