quarta-feira, 28 de janeiro de 2009

Configuração Básica de Driver ODBC para PostgreSQL

Acesso a dados demanda um bom middleware. E a tecnologia ODBC - Open Database Connectivity, é uma opção bastante estável, disponível desde 1992. Por apresentar drivers para praticamente todos os bons SGBDs do mercado, muitas soluções são implementadas utilizando esta tecnologia.

O suporte às funcionalidades de um SGBD relacional e a grande disponibilidade de drivers são grandes pontos fortes deste middleware. Como problemas podem ser elencadas a falta de atualizações recentes, com defasagem em termos de novas funcionalidades oferecidas por outros componentes de acesso a dados e o fato de ser uma tecnologia proprietária.

Longe de esgotar este tópico, este post mostra uma configuração básica de ODBC para PostgreSQL, como a que foi utilizada para a utilização da ferramenta DbDesigner Fork.

* Etapa 1- Instalação
É sempre recomendável baixar a versão mais atualizada disponível, no site da comunidade PostgreSQL.ORG: http://www.postgresql.org/ftp/odbc/versions/

No nosso caso, a instalação será feita em uma máquina com Windows XP. Existem formas de utilizar o ODBC no Linux e no UNIX e meios de se fazer pontes envolvendo ODBC e JDBC, mas estas variações estão (bastante) fora do escopo deste post.

Descompacte o arquivo ZIP e execute o instalador. É sempre aconselhável ler antes o arquivo readme e se for uma atualização, pode ser disparado o arquivo upgrade.bat. Na instalação padrão um assistente relativamente simples se encarregará do processo sem que se precise fazer configurações complicadas.

* Etapa 2 - Configuração

Após a instalação, abra o painel de controle do windows (Menu Iniciar/ Painel de Controle). Dispare a opção "Ferramentas administrativas" e depois selecione "Fontes de Dados (ODBC)".

Será aberta a tela "Administrador de Fonte de Dados ODBC". Nesta tela, selecione a aba "Drivers ODBC que estão instalados no sistema". Observe na imagem abaixo que foram instalados os drivers para PostgreSQL ANSI e UNICODE.


Para criar um data source, selecione a aba "Fonte de dados do usuário" e o botão "Adicionar". Aparecerá uma tela como a que está abaixo. Selecione o driver do PostgreSQL e confirme.

Em seguida, preencha os valores para o nome da fonte (Description), banco de dados para o qual aponta (Database), servidor em que está o banco de dados (Server), Porta de Comunicação (Port), usuário e senha. O servidor pode assumir os valores "localhost" ou um endereço IP. Utilize o botão TEST para verificar se os dados foram devidamente fornecidos e se a conexão pode ser feita e a opção SAVE para gravar a configuração do driver.

A opção "Configurar" permite a alteração de uma fonte de dados do usuário, abrindo a tela abaixo. Os botões Datasource, Global e Manage DSN estão fora do escopo deste post.


Após fazer a instalação, a nova fonte de dados do usuário aparece na lista, podendo ser utilizada por várias aplicações compatíveis com o ODBC.


Mais informações sobre ODBC podem ser obtidas nestas fontes:
- Na Wikipedia
- Site Easysoft, com informações sobre ODBC em UNIX e Linux

13 comentários:

Anônimo disse...

Ola Claudio.

Primeiramente, parabens pelo blog.

Achei bem interessante.

Estou tentando fazer uma conexao com o postgres pelo DBdesigner Fork do Linux mas to tendo problemas aqui..

Vc tem alguma experiencia com a ferramenta no linux ?

Abracos

Rafael

Cláudio Leopoldino disse...

Realmente não testei esta ferramenta no Linux...
Alguém se habilita a dar uma força para o Rafael?

leandro disse...

Ola,
Estou com problemas no windows server 2008, não consigo criar conexao odbc para postgres, mesmo usando as ultimas versões dos drivers. Ele da um erro de que não foi possivel traduzir a biblioteca. Sera incompatibilidade com 64 bits ?

Junior Mendes disse...

Parabéns, pelo Blog.
Tô iniciando, e essa configuração do drive ODBC, ja me ajudou pra começar a migrar o BD do access para o postgre.
Porém as chaves primárias, perderam suas referências. Sabe me dizer o porque ?

Yuri disse...

Fantástico, parceiro!

Me ajudou muito! Muito obrigado!

Anônimo disse...

Necessito de um EXPERT no BC Postgres para um job de consultoria de analise de capacity. Enviar curriculo para marco.silva@call.inf.br

Anônimo disse...

Olá a todos!!
Instalei o Driver para ODBC no Windows7, porém ao ADICIONAR uma fonte de Dados da um Erro de Falha com o Código de Erro 193.
Alguem pode me ajudar quanto a isso....]
ps.
só está acontecendo no W7, no vista funciona normalmente.

Grato

Renata Pimenta disse...

Galera,

Alguém pode me ajudar.........
Estou tentando rodar um site asp.net com postgresq´l , já configurei o ODBC do winXP.
Dá o seguinte erro.

ERROR [28000] FATAL: password authentication failed for user "postgres"

alguém pode me ajudar.

Renata Pimenta...

Rubens Tenorio disse...

Rubens
Bom dia

estou usando ODBC para linux com postgres v 9.0 e preciso gravar apostrofo, fazendo pelo pgsql coloando apostrofo, apostrofo dá certo, mas qdo faço via ODBC dá erro no caracter 75... poderia me ajudar neste sentido...
obrigado.

kyrla disse...

olá.. espero que possa me responder.. eu estou tentando conectat o postgres com o C#.net, mas estou encontrando erro.. já fiz essa configuração que você colocou no blog, uso a seguinte string de conexão: "Server = localhost; Port = 5432; Database = bdEscolaPiloto; User ID = postgres; Password = escola"; mas quando a conexão vai ser aberta ocorre o erro: ERROR [IM002] [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado.

Poderia me ajudar? Ou alguém que por aqui passar..?

Jefferson Rodrigues disse...

Parabéns cara! Mesmo sendo um post antigo, me ajudou pra caramba aqui! :D

Anônimo disse...

Eu uso uma ferramenta gratuita Valentina Estúdio com PostgreSQL. Será que tudo que você precisa, e faz isso muito bem. http://www.valentina-db.com/en/valentina-studio-overview

Fernando disse...

Caro, estou com uma situação aqui que está muito estranho. Configurei um ODBC do PostGreSql no Windows Server 2012 R2 de 64 bits. O problema é que já existia uma outra fonte de dados ODBC de um sistema legado que, segundo o usuário, os dois precisam ser acessados ao mesmo tempo. Ocorre que isso não está sendo possível. Vocês teriam como me ajudar? Isso é uma limitação mesmo deste recurso?
De antemão, grato por qualquer ajuda no sentido de resolver a questão.