ACESSAR UMA SUB LOCALIZADA NO GLOBAL.ASA
Estou fazendo uma aplicação rápida para uma intranet, com ASP clássico.
No Global.asa tenho o seguinte:
Criei uma sub chamada GetDB, para se conectar ao banco. Funciona se eu fizer chamada a sub em Session_OnStart. Porém, se eu chamar essa sub de uma outra página, não da certo. Existe alguma forma de declarar essa sub, de forma que possa ser chamada de qualquer página?
No Global.asa tenho o seguinte:
<SCRIPT LANGUAGE=[Ô]VBScript[Ô] RUNAT=[Ô]Server[Ô]>
Sub Session_OnStart
GetDB()
End Sub
Sub Session_OnEnd
End Sub
Sub GetDB()
Set Session([Ô]conn_crmexpress[Ô])=Server.CreateObject([Ô]ADODB.Connection[Ô])
gb_ConnString = [Ô]Driver={MySQL ODBC 5.1 Driver};server=mysql.nrserver22.net;uid=user_crd_betesda;pwd=951753;database=wdb_crd_betesda;port=3306[Ô]
Session([Ô]conn_crmexpress[Ô]).ConnectionString = gb_ConnString
Session([Ô]conn_crmexpress[Ô]).Open
End Sub
</SCRIPT>
Criei uma sub chamada GetDB, para se conectar ao banco. Funciona se eu fizer chamada a sub em Session_OnStart. Porém, se eu chamar essa sub de uma outra página, não da certo. Existe alguma forma de declarar essa sub, de forma que possa ser chamada de qualquer página?
Da maneira como você quer, não. Você pode criar um script asp e colocar a função GetDB dentro dela e chamar de dentro do Global.asa, mas uma vez que colocar no Global.asa, não tem como acessar. Questão de segurança.
Eu percebi que não dava mesmo. Então fiz uma pequena gambiarra.
Criei uma varável session chamada Session([Ô]conn_crmexpress[Ô]) no global.asa. Criei um arquivo de inclusão e nele coloquei a função:
Então faço uma referência a esse arquivo na página, para poder chamar a função. Assim, Session([Ô]conn_crmexpress[Ô]) pode ser chamada apenas uma vez, enquanto durar a seção.
Criei uma varável session chamada Session([Ô]conn_crmexpress[Ô]) no global.asa. Criei um arquivo de inclusão e nele coloquei a função:
Sub DBOpen_CRMExpress()
If Session([Ô]SessionStart[Ô])=False Then
Set Session([Ô]conn_crmexpress[Ô])=Server.CreateObject([Ô]ADODB.Connection[Ô])
Session([Ô]gb_ConnString[Ô]) = [Ô]Driver={MySQL ODBC 5.1 Driver};server=mysql.nrserver22.net;uid=user_crd_betesda;pwd=951753;database=wdb_crd_betesda;port=3306[Ô]
Session([Ô]conn_crmexpress[Ô]).ConnectionString = Session([Ô]gb_ConnString[Ô])
Session([Ô]conn_crmexpress[Ô]).Open
Session([Ô]SessionStart[Ô]) = True
End If
End Sub
Sub DBClose_CRMExpress()
If Session([Ô]SessionStart[Ô])<>False Then
Session([Ô]conn_crmexpress[Ô]).Close
Set Session([Ô]conn_crmexpress[Ô])=Nothing
End If
End Sub
Então faço uma referência a esse arquivo na página, para poder chamar a função. Assim, Session([Ô]conn_crmexpress[Ô]) pode ser chamada apenas uma vez, enquanto durar a seção.
é uma alternativa também, colocar a conexão na Session. Mas lembre que isso pode onerar o servidor se usar mais variáveis em sessão, multiplique pelo número de usuários e vai ter o quanto isso ocupa.
Eu sei. Mas vai rodar em uma intranet, com acessos limitados.
Então é tranquilo...
Gente não sei to sendo repetitivo mas veja
caramba gente, aqui é forum VB/VBA, existe o forum asp.classico e asp.net, onde esta duvida deveria estar sendo postada, não que eu não queira ajudar, mas suponha que a ajuda de um colega daqui resolva o problema, nniguém que frequenta o forum asp que possa ter a mesma duvida saberá. E isso porque? porque a duvida está no forum errado.
galera vamos nos policiar.
Citação:Estou fazendo uma aplicação rápida para uma intranet, com ASP clássico.
caramba gente, aqui é forum VB/VBA, existe o forum asp.classico e asp.net, onde esta duvida deveria estar sendo postada, não que eu não queira ajudar, mas suponha que a ajuda de um colega daqui resolva o problema, nniguém que frequenta o forum asp que possa ter a mesma duvida saberá. E isso porque? porque a duvida está no forum errado.
galera vamos nos policiar.
Eu postei aqui porque eu quis postar aqui. A sintaxe de linguagem á a mesma e praticamente todo programador VB desenvolve em ASP. E este forum é bem mais acessado, com respostas mais rápidas.
Tópico encerrado , respostas não são mais permitidas