fiz um arquivo conecta.asp para fazer as conexões do meu site e eu não ter que ficar abrindo e fechando a conexão em cada arquivo.....
usei um tudo do felipecm
<%
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 eh justamente:
For Each objRsTmp In objRs
If objRsTmp.State = adStateOpen Then objRsTmp.Close
Set objRsTmp = Nothing
Next
então reparei nesse detalhe:
Sub Disconnect()
Dim objRsTmp
For Each objRsTmp In objRs
If objRsTmp.State = adStateOpen Then objRsTmp.Close
Set objRsTmp = Nothing
Next
me corrijam se eu estiver errado, mais ele cria o recorset usando objRs e desconecta usa objRsTmp???
dai eu tentei apagar essa parte que está em vermelho...
e o erro continuou na mesma linha, mais mudou para:
Microsoft VBScript runtime error '800a01c3'
Object not a collection
/restrito/teste/sistema/conecta.asp, line 34
alguém tem alguma idéia de onde eu posso estar errando ??