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
- Protegendo seus formulários de contato em Asp
- Erros comuns em ASP
- O que é e como faço para acessar o Gerenciador de ODP
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