Ir para conteúdo

POWERED BY:

Arquivado

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

gpassarelli

Error:'80004005'

Recommended Posts

Fala galera bom?

Faz um tempo ja q nao posto aqui, mas to com uma duvida aqui que nunk tinha encarado...:S

Quando eu vou atualizar os dados de uma linha do DB to obtendo o seguinte erro:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Could not save; currently locked by user 'admin' on machine 'ASP01'.

/_adm/textos/default.asp, line 98

na linha 98 temos:

call abre_conexao
conexao.execute ("UPDATE conteudo SET " & col & "='" & conteudo & "' ")
response.redirect "done.asp"
o qual o valor da coluna eh passado por referencia e o conteudo vem do form.

So q o mais estranho eh q dependendo do valor da coluna ele funciona normal, e tem valores que ele apresenta o erro.

Sera q alguem sabe o que pode ser?

Abracos...

Boa Noite

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada aki pode te ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma response.write em "UPDATE conteudo SET " & col & "='" & conteudo & "' " e poste o resultado.

 

Poste também como está abrindo o banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu banco de Dados não está aberto? Está testando usando o DW?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como o salgado falou, se você estiver com o MDB aberto, ele nunca salva

 

"So q o mais estranho eh q dependendo do valor da coluna ele funciona normal, e tem valores que ele apresenta o erro."

o valor que da erro pode ser no momento em que você esta com o MDB aberto

 

 

outro caso pode ser uma tabela numerica recebendo outros valores

Compartilhar este post


Link para o post
Compartilhar em outros sites

usuario e arquivo estaun com todas as permissoes corretas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma response.write em "UPDATE conteudo SET " & col & "='" & conteudo & "' " e poste o resultado.

 

Poste também como está abrindo o banco.

 

Hargon o resulado do response.write foi:

UPDATE conteudo SET sobrenos='Bellitá deriva do termo italiano Belle` etá que significa Bela etapa ou Bela idade, que para nossa equipe tem um significado muito especial: descobrir que a beleza da vida não se limita a uma determinada idade, mas sim descobrir que cada idade possue a sua própria beleza.
         E ajudar a realçar esta beleza natural é o nosso principal objetivo para que a expressão de beleza e saúde possa refletir na qualidade de vida de cada um.
Já não possuímos o passado e não temos como mudá-lo e o futuro depende de nossas ações no presente.
         A melhor idade, então, para se viver feliz é no agora, e viver bem o presente é ganhar um presente maravilhoso.
Pensando nisso é que o nosso espaço foi especialmente preparado para atender a todos que queiram se presentear hoje com muita beleza e saúde. 

Missão
         Prestar serviço de excelência nas áreas de saúde, beleza e cursos vivenciais através de atendimento personalizado, ambiente agradável e profissionais especializados promovendo cada vez mais bem estar e qualidade de vida aos nossos clientes, parceiros e funcionários.

Visão
         Ser reconhecido como referência em Wellness Center no Brasil através da busca em excelência na prestação de serviços associado à novas tecnologias e ao crescimento humano e profissional de todos da equipe Bellitá e clientes.

Valores
- Ética
- Alegria e cordialidade no atendimento
- Comprometimento com o cliente
- Transparência e honestidade
- Integridade e Competência
- Trabalho em equipe
- Crescimento humano
'

o banco esta sendo aberto por:

<%
dim conexao
sub abre_conexao

set conexao = Server.CreateObject("ADODB.Connection") 
conexao.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/bellita.mdb")&";"

end sub

sub fecha_conexao
     Conexao.close
     Set Conexao = nothing
end sub 
%>

 

Seu banco de Dados não está aberto? Está testando usando o DW?

 

Cara ele ta adndo o erro tanto no server local quanto online e o DB nao esta abarto nao...

 

 

como o salgado falou, se você estiver com o MDB aberto, ele nunca salva

 

"So q o mais estranho eh q dependendo do valor da coluna ele funciona normal, e tem valores que ele apresenta o erro."

o valor que da erro pode ser no momento em que você esta com o MDB aberto

 

 

outro caso pode ser uma tabela numerica recebendo outros valores

 

nao eh tabela numerica, esta na opcao MEMO.

 

usuario e arquivo estaun com todas as permissoes corretas...

 

Acho q esta asim, como vejo isso?

 

Galera oq achei na net sobre o erro, mas q pra mim nao adiantou mt...se der uma luz pra vcs fala...

The main problem here is that you are using an ADODB.Recordset object to perform data manipulation operations. As described in Article #2191, do not try to hold recordsets open long enough to modify their contents back in the database. Get in and get out as quick as possible; therefore, execute direct INSERT/UPDATE/DELETE statements.

Obrigado desde ja.

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu UPDATE é somente isso

"UPDATE conteudo SET " & col & "='" & conteudo & "' "

 

verifique se naun esta faltando o WHERE, geralmente é usado para atualizar..

 

"UPDATE conteudo SET " & col & "='" & conteudo & "' WHERE id='"&variavel&"'"

 

use tb o objeto recordset para executar a SQL e coloque o cursortype e locktype para

 

recordset.Open SQL,conexao,1,3

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu UPDATE é somente isso

"UPDATE conteudo SET " & col & "='" & conteudo & "' "

 

verifique se naun esta faltando o WHERE, geralmente é usado para atualizar..

 

"UPDATE conteudo SET " & col & "='" & conteudo & "' WHERE id='"&variavel&"'"

 

use tb o objeto recordset para executar a SQL e coloque o cursortype e locktype para

 

recordset.Open SQL,conexao,1,3

 

Fala Xanburzum, entao o update é so isso mesmo, pq como é os textos do site tipo, home, sobre nos e talz eu fiz uma coluna pra cada texto ao inves de colocar um id pra cada um. E pior assim?

 

fiz a implementacao para o codigo ficar assim:

call abre_conexao
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "UPDATE conteudo SET " & col & "='" & conteudo & "' ",conexao,1,3
Mas continua dando o mesmo erro...

Error Type:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][Driver ODBC para Microsoft Access] Não foi possível salvar; atualmente bloqueado pelo usuário 'admin' na máquina 'HOME-54E1FAED4A'.

/bellita/_adm/textos/default.asp, line 100

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez ele naun esteja aceitando , tenta colocar um WHERE no Update, para ver , é melhor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez ele naun esteja aceitando , tenta colocar um WHERE no Update, para ver , é melhor...

Oq acontece é q tipo, pro home, q eh um texto menor ele funciona normal...agora pro sobre nos, promocoes e talz, q eh um texto maior ele trava...Imagem Postada

Aew teria q mudar a estrutura do db entao pra fazer com o WHERE ne?

talvez ele naun esteja aceitando , tenta colocar um WHERE no Update, para ver , é melhor...

Oq acontece é q tipo, pro home, q eh um texto menor ele funciona normal...agora pro sobre nos, promocoes e talz, q eh um texto maior ele trava...Imagem Postada

Aew teria q mudar a estrutura do db entao pra fazer com o WHERE ne?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você naun esta exedendo o numero de caracters para o tipode campo .....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você naun esta exedendo o numero de caracters para o tipode campo .....

 

Cara acho q nao...tds os campos tao pra MEMO, e oq acontece, se eu deixo o campo vazio no BD e insiro o texto grande a primeira vez pelo form, ele aceita de boa....aew se eu boto pra editar o texto dps...ele trava e da o erro entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun tá indo alguma tag,caracter invalido k pode estar dando algum erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun tá indo alguma tag,caracter invalido k pode estar dando algum erro...

Cara como assim?

Eu acho q nao, pq ele nao ta "quebrando" o codigo na hora do update...Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa um outra UPDATE para ver o k é retornado

 

<%	'aplicacaun para fazer o update dos dados do form atualizar_form.asp
  	'onde recupero todos os dados dos campos do form,dou um replace nos ' por ""
	'e crio a SQL para efetuar o update depois redireciono p/ administracao.asp
	' com passagem de parametro na URL msg=2
	
	option explicit
	'declaro as var
	dim conexao, conDBQ, constring, rs, SQL, varcodigo, varlogin, varsenha, varemail
	'recupero as var
	varcodigo=trim(request.form("codigo"))
	varlogin=trim(request.form("login"))
	varsenha=trim(request.form("senha"))
	varemail=trim(request.form("email"))
	' retiro qqer erro de digitaçao do user ,no caso ( aspas simples ')
	varlogin=replace (varlogin,"'","")
	varsenha=replace  (varsenha,"'","")
	varemail=replace(varemail,"'","")
	'crio a conexao%>
	<!--#include file="conn/conexao1.asp"-->
	<% 'abro a conexao
	call abreconexao
	'crio o rs
	set rs=Server.createobject("ADODB.Recordset")
	'crio a SQL
	SQL="UPDATE login SET login='"&varlogin&"',senha='"&varsenha&"',email='"&varemail&"' WHERE codigo="&varcodigo&""
	rs.open SQL,conexao,1,3
		if session("login") = "admin" then
			response.redirect("administracao_treina.asp?msg=2")
		else
			response.redirect("administracao1.asp?msg=2")
		end if
	'fecho o rs
	set rs=nothing
	'fecho a conexao
	call fechaconexao%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa um outra UPDATE para ver o k é retornado

 

<%	'aplicacaun para fazer o update dos dados do form atualizar_form.asp
  	'onde recupero todos os dados dos campos do form,dou um replace nos ' por ""
	'e crio a SQL para efetuar o update depois redireciono p/ administracao.asp
	' com passagem de parametro na URL msg=2
	
	option explicit
	'declaro as var
	dim conexao, conDBQ, constring, rs, SQL, varcodigo, varlogin, varsenha, varemail
	'recupero as var
	varcodigo=trim(request.form("codigo"))
	varlogin=trim(request.form("login"))
	varsenha=trim(request.form("senha"))
	varemail=trim(request.form("email"))
	' retiro qqer erro de digitaçao do user ,no caso ( aspas simples ')
	varlogin=replace (varlogin,"'","")
	varsenha=replace  (varsenha,"'","")
	varemail=replace(varemail,"'","")
	'crio a conexao%>
	<!--#include file="conn/conexao1.asp"-->
	<% 'abro a conexao
	call abreconexao
	'crio o rs
	set rs=Server.createobject("ADODB.Recordset")
	'crio a SQL
	SQL="UPDATE login SET login='"&varlogin&"',senha='"&varsenha&"',email='"&varemail&"' WHERE codigo="&varcodigo&""
	rs.open SQL,conexao,1,3
		if session("login") = "admin" then
			response.redirect("administracao_treina.asp?msg=2")
		else
			response.redirect("administracao1.asp?msg=2")
		end if
	'fecho o rs
	set rs=nothing
	'fecho a conexao
	call fechaconexao%>
Cara usei seu codigo, adadptei pro meu ficou assim:

<!--#include file="../settings/conexao(SUB).asp" -->
    <!--#include file="../settings/login_header.asp" -->
    <link href="../_list/style.css" rel="stylesheet" type="text/css" />
    <script src="../editor/nicEdit.js" type="text/javascript"></script>
<%
col = request.QueryString("col") 
call abre_conexao
set config = conexao.execute("SELECT *  from  config")
set cont = conexao.execute ("SELECT * FROM conteudo")
info = cont("" & col & "")


if request("action")="update" then
dim conteudo,rs, SQL
col = request("col") 
conteudo=trim(request.form("conteudo"))

conteudo=Replace(conteudo,"'","'")
conteudo=Replace(conteudo,"Á","Á")
conteudo=Replace(conteudo,"Â","Â")
conteudo=Replace(conteudo,"Ã","Ã")
conteudo=Replace(conteudo,"Ä","Ä")
conteudo=Replace(conteudo,"Å","Å")
conteudo=Replace(conteudo,"Æ","Æ")
conteudo=Replace(conteudo,"Ç","Ç")
conteudo=Replace(conteudo,"È","È")
conteudo=Replace(conteudo,"É","É")
conteudo=Replace(conteudo,"Ê","Ê")
conteudo=Replace(conteudo,"Ë","Ë")
conteudo=Replace(conteudo,"Ì","Ì")
conteudo=Replace(conteudo,"Í","Í")
conteudo=Replace(conteudo,"Î","Î")
conteudo=Replace(conteudo,"Ï","Ï")
conteudo=Replace(conteudo,"Ð","Ð")
conteudo=Replace(conteudo,"Ñ","Ñ")
conteudo=Replace(conteudo,"Ò","Ò")
conteudo=Replace(conteudo,"Ó","Ó")
conteudo=Replace(conteudo,"Ô","Ô")
conteudo=Replace(conteudo,"Õ","Õ")
conteudo=Replace(conteudo,"Ö","Ö")
conteudo=Replace(conteudo,"Ø","Ø")
conteudo=Replace(conteudo,"Ù","Ù")
conteudo=Replace(conteudo,"Ú","Ú")
conteudo=Replace(conteudo,"Û","Û")
conteudo=Replace(conteudo,"Ü","Ü")
conteudo=Replace(conteudo,"Ý","Ý")
conteudo=Replace(conteudo,"Þ","Þ")
conteudo=Replace(conteudo,"ß","ß")
conteudo=Replace(conteudo,"à","à")
conteudo=Replace(conteudo,"á","á")
conteudo=Replace(conteudo,"â","â")
conteudo=Replace(conteudo,"ã","ã")
conteudo=Replace(conteudo,"ä","ä")
conteudo=Replace(conteudo,"å","å")
conteudo=Replace(conteudo,"æ","æ")
conteudo=Replace(conteudo,"ç","ç")
conteudo=Replace(conteudo,"è","è")
conteudo=Replace(conteudo,"é","é")
conteudo=Replace(conteudo,"ê","ê")
conteudo=Replace(conteudo,"ë","ë")
conteudo=Replace(conteudo,"ì","ì")
conteudo=Replace(conteudo,"í","í")
conteudo=Replace(conteudo,"î","î")
conteudo=Replace(conteudo,"ï","ï")
conteudo=Replace(conteudo,"ð","ð")
conteudo=Replace(conteudo,"ñ","ñ")
conteudo=Replace(conteudo,"ò","ò")
conteudo=Replace(conteudo,"ó","ó")
conteudo=Replace(conteudo,"ô","ô")
conteudo=Replace(conteudo,"õ","õ")
conteudo=Replace(conteudo,"ö","ö")
conteudo=Replace(conteudo,"ø","ø")
conteudo=Replace(conteudo,"ù","ù")
conteudo=Replace(conteudo,"ú","ú")
conteudo=Replace(conteudo,"û","û")
conteudo=Replace(conteudo,"ü","ü")
conteudo=Replace(conteudo,"ý","ý")
conteudo=Replace(conteudo,"þ","þ")
conteudo=Replace(conteudo,"ÿ","ÿ")
conteudo=Replace(conteudo,"Œ","Œ")
conteudo=Replace(conteudo,"œ","œ")
conteudo=Replace(conteudo,"Š","Š")
conteudo=Replace(conteudo,"š","š")
conteudo=Replace(conteudo,"Ÿ","Ÿ")
conteudo=Replace(conteudo,"€","€")
conteudo=Replace(conteudo,"£","£")
conteudo=Replace(conteudo,"”","”")
conteudo=Replace(conteudo,"“","“")
conteudo=Replace(conteudo,"®","®")
conteudo=Replace(conteudo,"©","©")
conteudo=Replace(conteudo,"´","´")
conteudo=Replace(conteudo,"¸","¸")
conteudo=Replace(conteudo,"™","™")
conteudo=Replace(conteudo,"–","–")
        call abre_conexao
        set rs=Server.createobject("ADODB.Recordset")
        SQL="UPDATE conteudo SET " & col & "='" & conteudo & "' WHERE id=1"
        rs.open SQL,conexao,1,3
		response.redirect "done.asp"
        set rs=nothing
        call fecha_conexao

end if
%>
Mas ainda assim continuo obtendo o erro:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

 

[Microsoft][ODBC Microsoft Access Driver] Could not save; currently locked by user 'admin' on machine 'ASP01'.

 

/bellita/_adm/textos/default.asp, line 101

Compartilhar este post


Link para o post
Compartilhar em outros sites

só nets maquina 'ASP01' apresenta o erro, ou você ja testou no server...

Compartilhar este post


Link para o post
Compartilhar em outros sites

só nets maquina 'ASP01' apresenta o erro, ou você ja testou no server...

 

Na verdade esse erro e o apresentado no servidor ja.

se for na maquina local aparece 'HOME-54E1FAED4A' ao inves de 'ASP01'

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.