dlumeida Posted August 9, 2004 Report Share Posted August 9, 2004 Fiz um sisteminha e funciona blzinha, so que como não fechei as conexões o servidor mais cedo ou mais tarde da pau!! ai eu crieSub fecha()reg.closeset reg = nothingconexao.closeset conexao = nothingend subSó que ao executar essas linha de código me retorna um errocódigosql="insert into login (nome) values ('" & vnome & "')"set reg=conexao.execute(sql)fechaErro:Tipo de erro:ADODB.Recordset (0x800A0E78)Operação não permitida quando o objeto está fechado./blog/conect.asp, line 8Quando e como eu tenho q fechar minha conexão? e quando e como devo fechar um objeto record set?? Quote Link to comment Share on other sites More sharing options...
0 bareta Posted August 9, 2004 Report Share Posted August 9, 2004 cara eu sempre fecho meus recordsets apos não precisar mais deles..... você pode colocar sempre antes que redirecione a pagina use:rs.close set rs=nothing na conexão: conexao.close set conexao=nothingentendeu... Quote Link to comment Share on other sites More sharing options...
0 dlumeida Posted August 10, 2004 Author Report Share Posted August 10, 2004 foi isso que eu fiz cara! so que da aquele erro que eu postei!!!você tem um exemplo ai em .asp pra me poder ver? Quote Link to comment Share on other sites More sharing options...
0 [ GuTo ] Posted August 10, 2004 Report Share Posted August 10, 2004 bem, você tem certeza q não fechou nada antes de alguma chamada pro banco? Quote Link to comment Share on other sites More sharing options...
0 dark0 Posted August 10, 2004 Report Share Posted August 10, 2004 brothervocê só pode fechar a conexao após ter executado todo o seu codigopois, pelo que eu vi, você faz o SELECT, executa ele, e fecha a conexao, néentão.. pra que você faz o select?Deve ser pra mostrar os dados, certo?Mas, se você fechar a conexao antes de mostrar os dados, é claro que vai dar erro!Coloque o codigo que fecha a conexao após todas as operações que usam o banco de dados, e o SQL.Abraços Quote Link to comment Share on other sites More sharing options...
0 dlumeida Posted August 10, 2004 Author Report Share Posted August 10, 2004 Dark não fiz não foi Select não foi Insert!!!sql="insert into login (nome) values ('" & vnome & "')"set reg=conexao.execute(sql)fechaessa e uma pagina salva.aspe quando a instrução slq (insert) e executada eu fecho!! pois não irei presisar dela novamente!!! Quote Link to comment Share on other sites More sharing options...
0 Guest [ GuTo ] na faculdade Posted August 11, 2004 Report Share Posted August 11, 2004 faça assim:conexao.Execute("insert into login (nome) values ('" & vnome & "')") fecha()não precisa setar um recordset para os métodos: insert, update e delete. só no SELECT, pois ele é o único q armazena dados do bd.LEMBRE-SE DISSO!E se você fecha a conexao com bd depois de tudo, depois de ter verificado tudo q keria no bd, então nem sei cara.Posta seu código todo então pra "nóis" ver aguardamos!abraços,t+ Quote Link to comment Share on other sites More sharing options...
0 dlumeida Posted August 11, 2004 Author Report Share Posted August 11, 2004 Valeu cara isso eu não sabia, valeu pela dica!!! vo postar o codigo todo!!!<%@LANGUAGE="VBSCRIPT"%> <%if session("login")="" then response.Redirect("restrito.asp") end if%> <!--#include file="conect.asp"--> <!--#include file="convdata.asp"--> <% stat=request.QueryString("stat") if stat=1 then if request.Form("post")="" then response.Write("Preencha o campo post!") else vautor=session("nome") vpost=request.Form("post") sql="insert into post (autor, data, hora, post) values ('" & vautor & "','" & dt & "','" & tempo & "','" & vpost & "')" set reg=conexao.execute(sql) response.Redirect("view.asp") end if end if if stat=2 then vnome=request.Form("nome") vemail=request.Form("email") if request.Form("icq")="" then vicq="N/A" else vicq=Request.Form("icq") end if vstatus=request.Form("stat") vusuario=request.Form("usuario") vsenha=request.Form("senha") if request.Form("foto")="" then vfoto="sf.jpg" else vfoto=request.Form("foto") end if sql="insert into login (nome, email, icq, admin, usuario, senha, foto) values ('" & vnome & "','" & vemail & "','" & vicq & "','" & vstatus & "','" & vusuario & "','" & vsenha & "','" & vfoto & "')" set reg=conexao.execute(sql) response.Redirect("usuarios.asp") end if if stat=3 then id=request.QueryString("id_post") if not request.Form("nome")="" and not request.Form("comentario")="" then vnome=request.Form("nome") vcoment=request.Form("comentario") vemail=request.Form("email") vsite=request.Form("site") sql="insert into comentarios (id_post, nome, email, site, data, hora, comentario) values ('" & id & "','" & vnome & "','" & vemail & "','" & vsite & "','" & dt & "','" & tempo & "','" & vcoment & "')" set reg=conexao.execute(sql) response.Redirect("view.asp") else response.Write("digite um nome e um comentario valido") end if end if %><!--#include file="conect.asp"--> Conexao com o bd<!--#include file="convdata.asp"--> Somente tratamento de data Quote Link to comment Share on other sites More sharing options...
Question
dlumeida
Fiz um sisteminha e funciona blzinha, so que como não fechei as conexões o servidor mais cedo ou mais tarde da pau!! ai eu crie
Só que ao executar essas linha de código me retorna um erro
código
Erro:
Quando e como eu tenho q fechar minha conexão? e quando e como devo fechar um objeto record set??
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.