Como utilizar includes para abrir e fechar conexões com bancos

Muitos programadores utilizam include para abrir a conexão com o banco de dados, porém o ODP apresenta erro dizendo que a conexão não foi fechada e o objeto não foi destruido, mesmo fechando a conexão e destruindo o objeto no final do arquivo onde está o include.

Criando função para abri conexão

Nesses casos devemos criar uma função para abrir a conexão passando os parâmetros da mesma e uma sub para fechá-la, como o exemplo abaixo (vamos chamá-lo de db.asp):

 <% function abre_conexao(ConnString,conexao) ConnString="Provider=SQLOLEDB.1;SERVER=HM87;DATABASE=nomedabase;UID=login;PWD=senha;" set conexao=server.createobject("adodb.connection") conexao.open ConnString end function   sub fecha_conexao() conexao.close set conexao = nothing end sub %> 

Na página onde será feita a conexão, coloque o include:

 <!--#INCLUDE file="db.asp" -->  

Para abrir a conexão basta chamar a sub:

 Call abre_conexao(ConnString,conexao) 

e para fechá-la chamar a sub:

 Call fecha_conexao()  

OBS: O código de programação mencionado neste artigo é uma sugestão. Contamos com sua compreensão para o fato de que a Locaweb não pode se responsabilizar por apresentar mais detalhes a respeito de sua implementação e utilização. Para mais informações, sugerimos que entre em contato com o seu desenvolvedor, pois tal conhecimento é aberto e de domínio de profissionais técnicos. Caso queira entrar em contato conosco a respeito deste tema, orientamos a abrir um chamado via HelpDesk.

Veja também



SQL Server

SQL Server Native Client 10.0 OLE DB Provider

Segurança Padrão

 Provider=SQLNCLI10;Server=EnderecoDoServidor;Database=NomeDaBaseDeDados;Uid=UsuarioSQL; Pwd=SenhaSQL; 

Database mirroring

Se sua aplicação acessa uma base de dados via ADO.NET ou SQL Native Client, você pode configurar para que o driver redirecione a conexão para o servidor com a base de dados Principal automaticamente em caso de failover. Você precisa informar o servidor principal e o servidor parceiro na string de conexão:

 Provider=SQLNCLI10;Data Source=EnderecoDoServidor;Failover Partner=EnderecoDoServidorMirror; Initial Catalog=NomeDaBaseDeDados;User Id=UsuarioSQL;Password=SenhaSQL; 

SQL Server Native Client 10.0 ODBC Driver

Segurança Padrão

 Driver={SQL Server Native Client 10.0};Server=EnderecoDoServidor;Database=NomeDaBaseDeDados; Uid=UsuarioSQL;Pwd=SenhaSQL; 

Database mirroring

Se sua aplicação acessa uma base de dados via ADO.NET ou SQL Native Client, você pode configurar para que o driver redirecione a conexão para o servidor com a base de dados Principal automaticamente em caso de failover. Você precisa informar o servidor principal e o servidor parceiro na string de conexão:

 Driver={SQL Server Native Client 10.0};Server=EnderecoDoServidor;Database=NomeDaBaseDeDados; Failover_Partner=EnderecoDoServidorMirror;Uid=UsuarioSQL;Pwd=SenhaSQL; 

SQL Native Client 9.0 OLE DB provider

Segurança Padrão

 Provider=SQLNCLI;Server=EnderecoDoServidor;Database=NomeDaBaseDeDados; Uid=UsuarioSQL; Pwd=SenhaSQL; 

Database mirroring

Se sua aplicação acessa uma base de dados via ADO.NET ou SQL Native Client, você pode configurar para que o driver redirecione a conexão para o servidor com a base de dados Principal automaticamente em caso de failover. Você precisa informar o servidor principal e o servidor parceiro na string de conexão:

 Provider=SQLNCLI;Data Source=EnderecoDoServidor;Initial Catalog=NomeDaBaseDeDados; Failover Partner=EnderecoDoServidorMirror;User Id=UsuarioSQL;Password=SenhaSQL; 

SQL Native Client 9.0 ODBC Driver

Segurança Padrão

 Driver={SQL Server Native Client};Server=EnderecoDoServidor;Database=NomeDaBaseDeDados; Uid=UsuarioSQL;Pwd=SenhaSQL; 

Database mirroring

Se sua aplicação acessa uma base de dados via ADO.NET ou SQL Native Client, você pode configurar para que o driver redirecione a conexão para o servidor com a base de dados Principal automaticamente em caso de failover. Você precisa informar o servidor principal e o servidor parceiro na string de conexão:

 Driver={SQL Server Native Client};Server=EnderecoDoServidor;Database=NomeDaBaseDeDados; Failover_Partner=EnderecoDoServidorMirror;Uid=UsuarioSQL;Pwd=SenhaSQL; 

.NET Framework Data Provider for SQL Server

Segurança Padrão

 Data Source=EnderecoDoServidor;Initial Catalog=NomeDaBaseDeDados;User Id=UsuarioSQL;Password=SenhaSQL; 

Database mirroring

Se sua aplicação acessa uma base de dados via ADO.NET ou SQL Native Client, você pode configurar para que o driver redirecione a conexão para o servidor com a base de dados Principal automaticamente em caso de failover. Você precisa informar o servidor principal e o servidor parceiro na string de conexão:

 Data Source=EnderecoDoServidor;Initial Catalog=NomeDaBaseDeDados; Failover Partner=EnderecoDoServidorMirror;User Id=UsuarioSQL;Password=SenhaSQL; 

Microsoft SQL Server OLE DB Provider

Segurança Padrão

 Provider=sqloledb;Data Source=EnderecoDoServidor;Initial Catalog=NomeDaBaseDeDados; User Id=UsuarioSQL;Password=SenhaSQL; 

Microsoft SQL Server ODBC Driver

Segurança Padrão

 Driver={SQL Server};Server=EnderecoDoServidor;Initial Catalog=NomeDaBaseDeDados; User Id=UsuarioSQL;Password=SenhaSQL; 

MySQL

MySQL Connector/ODBC 5.1

Segurança Padrão

 Driver={MySQL ODBC 5.1 Driver};Server=EnderecoDoServidor;Port=3306;Database=NomeDaBaseDeDados; User=UsuarioSQL; Password=SenhaSQL;Option=3; 

MySQL Connector/Net

Segurança Padrão

 Server=EnderecoDoServidor;Database=NomeDaBaseDeDados;Uid=UsuarioMySQL;Pwd=SenhaMySQL;Port=3306; 

PostgreSQL

PostgreSQL ANSI

 Driver={PostgreSQL ANSI};Server=EnderecoDoServidor;Port=5432;Database=NomeDaBaseDeDados;Uid=UsuarioSQL;Pwd=SenhaSQL; 

PostgreSQL UNICODE

 Driver={PostgreSQL UNICODE};Server=EnderecoDoServidor;Port=5432;Database=NomeDaBaseDeDados;Uid=UsuarioSQL;Pwd=SenhaSQL; 

Referências

Oracle

Oracle Provider for OLE DB

TNS-less connection string

 Provider=OraOLEDB.Oracle.1;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=EnderecoDoServidor)(PORT=PortaDoServidor)))(CONNECT_DATA=(SID=SIDdoOracle)(SERVER=DEDICATED))); User Id=UsuarioOracle;Password=SenhaOracle; 

MS Access

ACE OLEDB 12.0

Segurança Padrão

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:/home/LOGIN_DE_FTP/dados/bancoAccess.accdb; Persist Security Info=False; 

ACE OLEDB 12.0

Utilizando Senha

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:/home/LOGIN_DE_FTP/dados/bancoAccess.accdb; Jet OLEDB:NOME_DO_BANCO Password=SENHA_DO_BANCO; 

Microsoft Jet OLE DB 4.0

Segurança Padrão

 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/home/LOGIN_DE_FTP/dados/bancoAccess.mdb; 

Veja também