Ir para conteúdo
Fórum Script Brasil
  • 0

Erro No Script De Conexão......


ViniciusJau

Pergunta

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

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

eu mudei de :

Sub Disconnect()

  Dim objRsTmp

  For Each objRsTmp In objRs

    If objRsTmp.State = adStateOpen Then objRsTmp.Close

    Set objRsTmp = Nothing

  Next

para:

Sub Disconnect()

  Dim objRs

  For Each objRs In objRs

    If objRs.State = adStateOpen Then objRs.Close

    Set objRs = Nothing

  Next

e 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 ??

Link para o comentário
Compartilhar em outros sites

  • 0

ohmy.gif também num deu certo.....

eu tentei que nem o

Felipe 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

Link para o comentário
Compartilhar em outros sites

  • 0

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
%>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...