Nicolviski Postado Junho 14, 2007 Denunciar Share Postado Junho 14, 2007 Pessoal,Apos consultar uma tabela e tentar incluir dados em outra tabela aparece essa mensagem:ADODB.Recordset erro '800a0e78' Operação não permitida quando o objeto está fechado. /gravadados.asp, line 34O script está abaixo. Será que alguém me ajuda?<% Dim cliente, banco, ano'Declaração de Conexão com banco de dadosSet Conexao = Server.CreateObject("ADODB.Connection")'Altere o caminho do DBQ adequadamenteConexao.Open "DBQ=c:\inetpub\wwwroot\_private\geral.mdb;Driver={Microsoft Access Driver (*.mdb)};"'Selecionando os registros do Banco de Dados'Cláusula SQL de pesquisaPESQUISAR = "SELECT * FROM clientes ORDER by cliente"'Criação do arquivo que conterá o resultado da pesquisaSet RecSet=Conexao.Execute(PESQUISAR)%><%'Caso chegue ao final do RecordSet e não encontre nenhum registroIF RecSet.EOF then %><p> Não há clientes cadastrados para gravar dados!</p><%else'ou seja, se encontrar algum registro...%> <% do while NOT RecSet.EOF%><%'AQUI COMECA A GRAVAR OS DADOScliente = RecSet("cliente")banco = RecSet("banco")ano = replace(request.form("ano"), "'", "''")'Cláusula SQL para inserção de dados no BDADICIONAR="INSERT INTO fatur (cliente, banco, ano)" & "VALUES('" & cliente & "','" & banco & "','" & ano &"')"'Pedido de execução da cláusulaSet RecSet = Conexao.Execute(ADICIONAR)%><%RecSet.Movenext%><%loop%><%end if%> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Junho 14, 2007 Denunciar Share Postado Junho 14, 2007 mude para isso a execução do insert'Pedido de execução da cláusula Conexao.Execute(ADICIONAR) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nicolviski Postado Junho 14, 2007 Autor Denunciar Share Postado Junho 14, 2007 mude para isso a execução do insert'Pedido de execução da cláusula Conexao.Execute(ADICIONAR)Tentei, mas deu este erro:Tipo de erro:Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][Driver ODBC para Microsoft Access] A operação deve usar uma consulta atualizável./teste.asp, line 34 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Junho 14, 2007 Denunciar Share Postado Junho 14, 2007 seu erro é devido a permissão .... libere permissões de escrita na pasta.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --nicolviski -- Postado Junho 15, 2007 Denunciar Share Postado Junho 15, 2007 As pastas já tem permissôes para gravar.Alguém me disse que tenho que tirar as variáveis da condição EXECUTE, mas também já fiz isso é não deu certo.Será que o script SELECT E INSERT não podem trabalhar juntos? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Nicolviski
Pessoal,
Apos consultar uma tabela e tentar incluir dados em outra tabela aparece essa mensagem:
ADODB.Recordset erro '800a0e78'
Operação não permitida quando o objeto está fechado.
/gravadados.asp, line 34
O script está abaixo. Será que alguém me ajuda?
<%
Dim cliente, banco, ano
'Declaração de Conexão com banco de dados
Set Conexao = Server.CreateObject("ADODB.Connection")
'Altere o caminho do DBQ adequadamente
Conexao.Open "DBQ=c:\inetpub\wwwroot\_private\geral.mdb;Driver={Microsoft Access Driver (*.mdb)};"
'Selecionando os registros do Banco de Dados
'Cláusula SQL de pesquisa
PESQUISAR = "SELECT * FROM clientes ORDER by cliente"
'Criação do arquivo que conterá o resultado da pesquisa
Set RecSet=Conexao.Execute(PESQUISAR)
%>
<%'Caso chegue ao final do RecordSet e não encontre nenhum registro
IF RecSet.EOF then %>
<p> Não há clientes cadastrados para gravar dados!</p>
<%else
'ou seja, se encontrar algum registro...
%>
<% do while NOT RecSet.EOF%>
<%
'AQUI COMECA A GRAVAR OS DADOS
cliente = RecSet("cliente")
banco = RecSet("banco")
ano = replace(request.form("ano"), "'", "''")
'Cláusula SQL para inserção de dados no BD
ADICIONAR="INSERT INTO fatur (cliente, banco, ano)" & "VALUES('" & cliente & "','" & banco & "','" & ano &"')"
'Pedido de execução da cláusula
Set RecSet = Conexao.Execute(ADICIONAR)
%>
<%RecSet.Movenext%><%loop%>
<%end if%>
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.