Há alguns meses nós falamos aqui sobre um problema comum do driver ODBC do Progress em ambientes windows 32 e 64 bits. Geralmente as integrações e os acessos são feitos via fonte de dados ou DSN (Data source name). Esta é uma forma bem prática e simples, uma vez que o próprio driver fornece as coordenadas de parametrização. Entretanto, nem sempre utilizar data source é uma alternativa, seja por requisitos do projeto, limitações técnicas, segurança ou coisa do tipo. Uma outra forma de efetuar acessos ODBC é utilizar diretamente a string de conexão ou também chamada de DSN-less. Este método é muito comum em projetos PHP, .NET ou JAVA.
O objetivo deste post não é entrar em detalhes avançados, mas sim exemplificar de forma prática a maneira mais comum de se criar uma string de conexão ODBC ou JDBC Progress Openedge.
Para montar a string de conexão ODBC é necessário informar os seguintes parâmetros:
DRIVER - Nome e versão do driver, em geral é Progress OpenEdge seguido do número da versão;
HOSTNAME - Nome ou endereço IP do servidor onde está o banco de dados;
PORTNUMBER - Porta do banco de dados. Lembre-se que para conexões ODBC é necessário definir o parâmetro de carga servertype com valor both ou SQL;
DATABASENAME - Nome lógico do banco de dados;
USERID - Usuário de conexão do banco de dados;
PASSWORD - Senha do usuário de conexão do banco de dados;
DEFAULTISOLATIONLEVEL - Tipo de tratamento para transações concorrentes. Valores possíveis: 0 ou READ UNCOMMITTED, 1 ou READ COMMITTED, 2 ou REPEATABLE READ e 3 ou SERIALIZABLE. Caso a versão do driver seja maior que 6.1, use número, caso seja menor, use o string. Para simplificar, a partir do Progress 10.2BSP6 use números. Veja as versões dos drivers aqui. Veja detalhes sobre isolation level aqui.
Sendo assim, um exemplo completo de string de conexão ODBC seria:
Driver={Progress OpenEdge 11.5 Driver};HostName=10.0.0.1;PortNumber=23670; DatabaseName=nomeDoBanco;UserId=sysprogress;Password=sysprogress; DefaultIsolationLevel=0
Para montar uma string de conexão JDBC é necessário informar os seguintes parâmetros:
HOST - Nome ou endereço IP e porta do servidor onde está o banco de dados;
DB_NAME - Nome lógico do banco de dados;
USER - Usuário de conexão do banco de dados;
PASSWORD - Senha do usuário de conexão do banco de dados;
Para utilizar o JDBC você tem que importar as bibliotecas installdir\java\openedge.jar e installdir\java\pool.jar. Sendo assim, um exemplo completo de string de conexão seria:
jdbc:datadirect:openedge://10.0.0.1:23670;databaseName=nomeDoBanco; user=sysprogress;password=sysprogress
Para cenários mais complexos, segue o link da documentação ODBC e JDBC.
Espero ter ajudado. Qualquer observação, comentário ou correção nos avisem!