ViniciusJau Postado Janeiro 31, 2005 Denunciar Share Postado Janeiro 31, 2005 e ai pessoal... seguinte fiz esse arquivo de copnexão om ajuda de alguns tutos...<% Dim objConnection, objRs() 'Constante da verificação do estado do objeto ADO Const adStateOpen = &H00000001 Sub Connect() Dim strConnString strConnString = "driver=Mysql;server=200.152.241.200;uid=LOGIN;pwd=SENHA;database=BANCO" Set objConnection = Server.CreateObject("ADODB.Connection") With objConnection .ConnectionString = strConnString .Open End With Redim objRs(0) End Sub Sub GeraRs (ByVal strSql) If Not IsEmpty(objRs(0)) Then Redim Preserve objRs(UBound(objRs) + 1) Set objRs(UBound(objRs)) = Server.CreateObject("ADODB.Recordset") objRs(UBound(objRs)).Open strSql, objConnection End Sub Sub Disconnect() Dim objRsTmp For Each objRsTmp In objRs If objRsTmp.State = adStateOpen Then objRsTmp.Close Set objRsTmp = Nothing Next Redim objRs(0) If objConnection.State = adStateOpen Then objConnection.Close Set objConnection = Nothing End Sub%>dai qunado eu vou abrir uma conexao eu incluo a seguinte linha <!--#include file="conecta.asp"--><% call connect %>o codigo funciona perfeitamente.... porém se eu fecho a conexão ( <% call disconnect %> ) ele dá o seguinte erro:Erro de tempo de execução do Microsoft VBScript error '800a01a8' Objeto necessário: 'objRsTmp' /sistema_novo/inclui/conecta.asp, line 35 e a linha 35 é justamente: For Each objRsTmp In objRs If objRsTmp.State = adStateOpen Then objRsTmp.Close Set objRsTmp = Nothing Next Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Janeiro 31, 2005 Denunciar Share Postado Janeiro 31, 2005 Não seria porque na sub que cria o recorset voce usar objRs e na que desconecta você usa objRsTmp??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Janeiro 31, 2005 Autor Denunciar Share Postado Janeiro 31, 2005 eu mudei de : Sub Disconnect() Dim objRsTmp For Each objRsTmp In objRs If objRsTmp.State = adStateOpen Then objRsTmp.Close Set objRsTmp = Nothing Nextpara: Sub Disconnect() Dim objRs For Each objRs In objRs If objRs.State = adStateOpen Then objRs.Close Set objRs = Nothing Nexte o codigo funcionou tal, ele fez as consultas e tudo mais..porém exibiu um erro assim no final da pagina:Microsoft VBScript runtime error '800a01c3' Object not a collection /restrito/teste/sistema/conecta.asp, line 34 continua dando erro na mesma linha.....e aconteceu uma coisa estranha agora, os outros aquivos do meu site que usam a mesma tabla para fazer consultas inserir dado não estão funcionando.. eles exibem o codigo fonte do arquivo asp..... será qeu é porque eu não tava fechando as conexões ou não tem nada haver ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 felipefrancesco Postado Fevereiro 1, 2005 Denunciar Share Postado Fevereiro 1, 2005 Vinicius, Faz assim e vê se vai: For Each objRsTmp In objRs If isObject(objRsTmp) then If objRsTmp.State = adStateOpen Then objRsTmp.Close Set objRsTmp = Nothing End If Next Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rob_g2*6(sic)6 Postado Fevereiro 1, 2005 Denunciar Share Postado Fevereiro 1, 2005 Legal esse RECORDSET.State ... retorna oque .... não sabia que podia ser comparado com o Objeto.Open ...Legal.... Se alguém souber EXPLICAR o script !!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Fevereiro 3, 2005 Autor Denunciar Share Postado Fevereiro 3, 2005 também num deu certo.....eu tentei que nem oFelipe falou e ele me retornou esse erro:Microsoft VBScript runtime error '800a01c3' Object not a collection /restrito/teste/sistema/conecta.asp, line 34 a pagina abre tudo certinho, mais ela exibe isso ai no lugar que tá o disconect Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 felipefrancesco Postado Fevereiro 3, 2005 Denunciar Share Postado Fevereiro 3, 2005 Vinicius, o problema tá acontecendo porque essa conexão está criando um array de recordsets...Eu nunca vi isso antes, e achei q funcionaria, mas pelo q eu estou vendo ta meio estranho....Eu simplifiquei o código, veja se isso funciona melhor p/ vc. Aproveitei e comentei ele bastante pra dar uma explicadinho no código.... <% Dim objConnection ' *** Declara um objeto de conexão Dim objRS ' *** Objeto Recordset Const adStateOpen = &H00000001 'Constante da verificação do estado do objeto ADO Sub Connect() ' ::: Atribui a string de conexão Dim strConnString strConnString = "driver=Mysql;server=200.152.241.200;uid=LOGIN;pwd=SENHA;database=BANCO" ' ::: Instancia o objeto de conexão Set objConnection = Server.CreateObject("ADODB.Connection") With objConnection .ConnectionString = strConnString ' ::: Atribui a string de conexão .Open ' ::: Abre a conexão End With End Sub Sub GeraRs (ByVal strSql) Set objRs = Server.CreateObject("ADODB.Recordset") ' ::: Instancia o objeto rs objRs.Open strSql, objConnection ' ::: Atribui ao rs o conteúdo da string strSql End Sub Sub Disconnect() ' ::: Se o rs tá aberto, fecha-o. if objRs.State = adStateOpen Then objRsTmp.Close ' ::: Destrói o obj recordset if isObject(objRs) then set objRS = nothing ' ::: O mesmo para a conexão If objConnection.State = adStateOpen Then objConnection.Close Set objConnection = Nothing End Sub %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ViniciusJau
e ai pessoal... seguinte fiz esse arquivo de copnexão om ajuda de alguns tutos...
dai qunado eu vou abrir uma conexao eu incluo a seguinte linha
<!--#include file="conecta.asp"-->
<% call connect %>
o codigo funciona perfeitamente.... porém se eu fecho a conexão ( <% call disconnect %> ) ele dá o seguinte erro:
e a linha 35 é justamente:
Link para o comentário
Compartilhar em outros sites
6 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.