Kbase 70384: Conexão ODBC DSN-less com Progress
Autor |
  Marco Aurelio Scheidt - Tecnologia |
Acesso |
  Público |
Publicação |
  19/03/2018 |
|
A forma mais usual de realizar uma conexão ODBC a um banco de dados Progress é criar uma fonte de dados na máquina que irá realizar o acesso, informando nome do banco, nome do servidor, porta, login e senha. No momento da conexão, a aplicação faz referência ao nome da fonte de dados e todos os parâmetros já estão configurados.
Uma fonte de dados ODBC é um catálogo (armazenado no registro) com o nome de um driver ODBC e vários parâmetros de conexão. No momento de realizar uma conexão ao banco de dados, a aplicação lê estes parâmetros armazenados e utiliza-os para efetivar a conexão.
Este método é simples e funciona bem, mas quando há um grande número de estações para configurar (3.000 usuários de uma aplicação client-server) ou quando não é possível alterar a configuração de ODBC de um servidor (um servidor web remoto, por exemplo), a configuração de fontes de dados torna-se impraticável.
Uma conexão DSN-less (Data Source Name-less, ou conexão sem fonte de dados) permite que a aplicação especifique todos os parâmetros diretamente na linha de conexão ao banco, sem a necessidade de configurar uma fonte de dados ODBC. O driver ODBC ainda é necessário para conexão e deve estar instalado na máquina que realizará o acesso.
A linha para conexão DSN-less com o driver do OpenEdge é:
Driver={<driver>}; HostName=<servidor>; PortNumber=<porta>; DatabaseName=<banco>; DefaultIsolationLevel=<isolamento>; LogonID=<usuário>; Password=<senha>;
O driver para conexão com o OpenEdge 10.1C é Progress OpenEdge 10.1C Driver. Os níveis de isolamento válidos para o Progress são:
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
Abaixo um exemplo de conexão DSN-less com C#.Net:
OdbcConnection conn = new OdbcConnection("Driver={Progress OpenEdge 10.1C driver}; HostName=localhost; PortNumber=33445; DatabaseName=sports2000; DefaultIsolationLevel=READ COMMITTED; LogonID=sysprogress; Password=sys");
A mesma conexão em PHP poderia ser realizada da seguinte forma:
$conn = odbc_connect("Driver={Progress OpenEdge 10.1C driver}; HostName=localhost; PortNumber=33445; DatabaseName=sports2000; DefaultIsolationLevel=READ COMMITTED;", "sysprogress", "sys", SQL_CUR_USE_ODBC);
A função de conexão do PHP tem parâmetros próprios para login e senha, então não precisamos informá-los novamente na linha de conexão.
Autor: Marco Kirchner