Ir para conteúdo

POWERED BY:

Arquivado

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

TeixeiraRamos

[Resolvido] Codigo não funcina

Recommended Posts

Estou estudando em exemplo de uma página em ASP e não está funcionando. Refazer os exemplos entendendo é fundamental para aprender. O pouco que sei de ASP aprendi aqui.

Tenho que aprender a incluir, atualizar, excluir registros de um banco de dados via uma página de ASP. Onde?

Os exemplos que tenho visto pela internet não estão me ajudando mas sim me enrrolando cada vez mais. Já procurei livros (em portugues) de ASP e não encontro. Se aparece um na lista está esgotado e a editora não tem interesse em editar mais. É, a coisa está feia para ASP. Tem muita coisa de ASP.NET, mas de ASP está muito ruim. Se estiver errado provem ao contrário.

Como eu acredito que antes de se colocar um exemplo em um site a pessoa teste estou buscando uma solução. O propósito dessas página é aparececer um contador com uma imagem. Se pelo menos o contador aparecesse ficaria feliz. É uma barra.

 

Tenho esse código pagina default.asp

<%@LANGUAGE="VBSCRIPT"%>
<!--#INCLUDE FILE="funcoes.asp"-->
<%
Acessos()

Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/acessos.mdb")

sql3 = "SELECT * FROM acessos"
Set conta = conexao.Execute(sql3)

Contar = conta("contador")

Function PegarImg(Contar)
For numero = 1 to Len(Contar)
	Response.Write "<img src=imagens/" & Mid(Contar,numero,1) & ".gif>"
Next
End Function
%>
<html>
<body bgcolor="black">
Acessos ao site: <%=PegarImg(Contar)%>
</body>
</html>

 

 

E o da funcoes.asp

<%
Session.LCID = 1046

Public Function Acessos()
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("dados/acessos.mdb")

sql2 = "SELECT * FROM acessos"
Set rs = conexao.Execute(sql2)

contador = rs("contador")

if contador = "" then
	contador = 0
end if

contador = contador + 1


SQL = "UPDATE acessos SET contador = '"&contador&"' WHERE cod = 1"
conexao.Execute(SQL)


conexao.close
set conexao = nothing
End Function
%>

 

Ao abrir default.asp aparece a seguinte mensagem:

 

Microsoft JET Database Engine (0x80004005)

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

/contador_asp/tutorial/access/funcoes.asp, line 21

 

 

 

A linha 21 de funcoes.asp

 

conexao.Execute(SQL)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pegar exemplos na rede pode tanto ajudar como confundir ainda mais, pois cada exemplo traz uma rotina de programação pessoal e muitas vezes sem comentários nos trechos dos códigos para fácil entendimento.

O ideal é que você comprenda a lógica da coisa e inicie com scripts simples de acesso ao banco (consulta), alteração, exclusão, etc...

 

Quanto ao seu erro, verifique se o campo na tabela é do tipo numérico, se for, altere a sua SQL:

de: '"&contador&"' para: "&contador&" (eliminar aspas simples para campo numérico).

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado. Se for isso confirma que postam as coisas sem testar.

Com relação à lógica, concordo, mas é difícil para um iniciante ver lógica em um código com erros etc. Se a pessoa não tem competência não coloque exemplo com modelo para os outros. Como vou entender, ver lógica em um código que já inicia com mensage de erro? A lógica vai para cucuia. A tabela está exatamente conforme está no exemplo para estudo. O campo "contador" é texto. Dessa forma acho que não tem nada haver o erro com o campo. Mas a luta continua.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, o campo "cod" existe na sua tabela? Está com o valor de "1"?

Pergunto porque o erro apresentado é da instrução SQL, então deverá verificar se está correta e de acordo com os dados/campos do banco.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisa dar permissão no arquivo e pasta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá bom, xamburzum, deixa ai essa orientação que a trurma vai fazer grandes e maravilhosos progreamas. Francamente!! Para com isso!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro de permissão !?!?!?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teixeira o Xanburzum esta certo, as vezes esse erro ocorre por erro de permissão no bd, com isso é necessário permitir a leitura e gravação setando essas configurações na pasta aonde se encontra o arquivo BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK. Um banco de dados sem permissão se inclui registro, exclui registro. Se for positivo ele está sem permissão.

Acabei de inclui um registro, exclui. Deve ser outra coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites
OK. Um banco de dados sem permissão se inclui registro, exclui registro. Se for positivo ele está sem permissão.

Acabei de inclui um registro, exclui. Deve ser outra coisa.

Fez isso via ASP ou diretamente no access?

 

Dê uma olhada também no tópico pendurado "Duvidas Frequentes".

Compartilhar este post


Link para o post
Compartilhar em outros sites
Salgado Bom dia!

Foi direto no banco.

"Duvidas Frequentes" Onde?

Pelo Access irá conseguir, mas via Script nem sempre.

 

Dê uma lida e siga o que está sendo explicado nesse link do MSDN: http://support.microsoft.com/kb/175168/PT-BR/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Salgado. Dei uma lida mas não sei por onde começar para resolver. Onde informa:

"O motivo mais comum é o fato de a conta de convidado da Internet (IUSR_MACHINE), que, por padrão, faz parte do grupo "Todos", não ter permissões de gravação no arquivo de banco de dados (.mdb). Para corrigir esse problema, use a guia Segurança no Explorer para ajustar as propriedades para esse arquivo de modo que a conta de convidado da Internet tenha as permissões corretas.

"

 

Onde está "...guia Segurança no Explorer..."

Afirmo que compreendi tudo mas não vejo meios para aplicar no meu código.

 

Estou chegando a conclusão que esse não foi um bom exemplo para estudo.

Salgado, tenho que aprender a Incluir, Exluir, Altera registros via página ASP (banco de dados em access).

Não tinha feito nada em ASP, não sabia nem o que era isso e hoje já cololo, em uma página ASP uma tabela com restros de uma banco de dados em access. Tudo aprendido aqui.

Mas é pouco ainda e tenho que pegar mais exemplos. Não posso ficar só vendo os registros de um banco de dados em uma div.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites
Valeu Salgado. Dei uma lida mas não sei por onde começar para resolver. Onde informa:

"O motivo mais comum é o fato de a conta de convidado da Internet (IUSR_MACHINE), que, por padrão, faz parte do grupo "Todos", não ter permissões de gravação no arquivo de banco de dados (.mdb). Para corrigir esse problema, use a guia Segurança no Explorer para ajustar as propriedades para esse arquivo de modo que a conta de convidado da Internet tenha as permissões corretas.

"

 

Onde está "...guia Segurança no Explorer..."

Afirmo que compreendi tudo mas não vejo meios para aplicar no meu código.

 

Estou chegando a conclusão que esse não foi um bom exemplo para estudo.

Salgado, tenho que aprender a Incluir, Exluir, Altera registros via página ASP (banco de dados em access).

Não tinha feito nada em ASP, não sabia nem o que era isso e hoje já cololo, em uma página ASP uma tabela com restros de uma banco de dados em access. Tudo aprendido aqui.

Mas é pouco ainda e tenho que pegar mais exemplos. Não posso ficar só vendo os registros de um banco de dados em uma div.

No Windows Explorer clique com o botão direito na pasta do banco de dados e selecione propriedades, depois clique na guia "Segurança", já nela clique no botão "adicionar" e adicione esse usuário, depois defina as permissões mais abaixo na guia de Segurança.

 

Qualquer coisa poste novamente.

 

Dê também uma olhada nos Subfóruns "Laboratório de scripts" e "Artigos, Tutoriais e Matérias"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está ficando cada vez mais confuso. Observe o que vou informar talvez consiga descobrir a minha ignorância e ai sim resolver tudo.

 

 

O problema é na criação do bando que quem criou não deu permissão ou o código. Se é na criação do banco de dados como que em outros banco de dados não recebo essa mensagem e nunca entrei em propriedade, segurança...Isso eu fazia no tempo que trabalhava, tinha a intranet onde diponibilizava banco de dados para pessoal trabalhar.

 

 

Estou incluindo registro normalmente através do banco de dados em questão. Porém, fui executar suas orientações.

Através do Explorer, clicando (lado direito) na pasta “dados” e depois em propriedade, não consta a guia “Segurança”, existem as guias: Geral, Compartilhamento, Compartilhamento a Web e Personalizar.

Pergunto: esse processo só é necessário para incluir registro, alterar ou deletar?

 

Por que os registros em um banco de dados conforme poder ser observado em: http://www.informacaoteixeira.com.br/radioamadorrepetidoras.asp

 

podem ser visualizados normalmente. Por que não informa que a “...deve usar uma consulta atualizável ...”? Ele não tem QSL de consulta? É um banco de dados igual ao outro. A diferença é que um tem uma conexão só para visualizar os registros na página e esse inclui registro.

É como se eu tivesse criado uma consulta que não permite atualização? Porque não estamos incluindo registro estamos visualizando. É isso? Não isso não tem nada haver com permissão que eu conheço. Minha visão de permissão é fazer um programinha onde em um computador fica como servidor e ou demais clientes. Vou a cada computador, vejo pela rede o “nome computador” e dou permissão ao empregado “X” para trabalha. O empregado que não tiver o nome na lista não tem permissão. Tem ainda a opção de colocar apenas para leitura. Aqui não é isso?

 

Esse processo que você está me passando independe se o banco está ou não com permissão. É isso que não entendo. O banco já é criado com permissão, ou seja, se ele está “local” é apenas para aparecer os registros na página ASP, basta a conexão e pronto. Porém se for “Alterar registro”, “Incluir registro” ou “Deletar registro” a forma de conexão é outra e gera essas informações “..Tipo de erro:

Microsoft JET Database Engine (0x80004005)

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

/contador_asp/tutorial/access/funcoes.asp, line 21”

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Teixeira, a questão de segurança é do próprio sistema operacional. Como você disse que pegou um exemplo na rede e copiou o arquivo do banco de dados para a sua máquina (.MDB), realmente precisa re-definir as permissões para este arquivo pois neste processo o arquivo fica com a opção de "somente leitura", por esta razão que suas consultas são realizadas sem problema, mas para outros processos, precisa definir as permissões de "leitura e gravação/escrita".

 

Como mencionou que não está visualizando a aba "Segurança" nas propriedades do arquivo/pasta, siga os passos abaixo para habilitar esta opção:

Painel de Controle > Opções de Pasta > Modo de Exibição e desmarque a opção "Usar compartilhamento simples de arquivo (recomendável)".

 

Confirme a alteração e siga os passos menionados pelos colegas para definir as permissões necessárias.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

botão direito no arquivo/pasta, aponte para segurança e dê permissões

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso! Se fosse estaria resolvido. Procedi conforme Public2004 a aparecereu a Guia de Segurança.

Deixei tudo marcado, fechei o banco e mandei abrir a pagina e a mensagem de erro continua.

Deve ser outra coisa.

 

"Tipo de erro:

Microsoft JET Database Engine (0x80004005)

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

/contador_asp/tutorial/access/funcoes.asp, line 21"

 

A linha 21 funcoes.asp é:

 

conexao.Execute(SQL)

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.