PostgreSQL no Delphi XE8 com FireDac

10/04/2015

0

Pessoal quero usar PostgreeSQL no Delphi XE8, usando FireDAC. Meu sistema é Windows 8.1 64 bits e meu Postgree também é 64 bits.

No arquivo FDDrivers.ini, apontei o vendorlib a pasta com as dll's do Postgree, tudo certinho. Configurei a conexão com o banco no arquivo FDConnectionDefs.ini.

Porém, quando coloco um componente FDConnection1 no form,configuro e mudo a propriedade 'connected' para true, aparece o erro:

[FireDAC][Phys][PGSQL]-314. Cannot load vendor library [C:\Program Files\PostgreeSQL\9.4\bin\libpq.dll]. Library has unsupported architeture [x64]. Required [x86].
Hint: check it is in the PATH or application EXE directories, and has x86 bitness..

Ou seja, o delphi requer que a dll libpq.dll seja de arquitetura 32 bits, obrigatoriamente. Porém como o Postgre é 64bits, as dll's dele também são, obviamente.

Alguém pode me ajudar?
Fabrício Santos

Fabrício Santos

Responder

Post mais votado

12/04/2015

Fabriccio,

Considerando o tipo de aplicação que você vai desenvolver e o ambiente final em que ela será instalado, não faria sentido migrar todo o ambiente de desenvolvimento para 32 bits, minimizando os problemas futuros deimplantação ?

Tem razão, eu desinstalei o postgre 64 e instalei o 32, deu certo, com masi algumas configurações adicionais que eu não sabia. Obrigado ;)

Fabrício Santos

Fabrício Santos
Responder

Mais Posts

10/04/2015

Marcos P

Fabriccio,

Considerando o tipo de aplicação que você vai desenvolver e o ambiente final em que ela será instalado, não faria sentido migrar todo o ambiente de desenvolvimento para 32 bits, minimizando os problemas futuros deimplantação ?
Responder

13/04/2015

Marcos P

Legal !!!
Responder

12/10/2015

Marcio

Pelo que percebi, funciona sim, porém só quando o executável que será compilado é de 64bits.

Por exemplo, se você estiver gerando um executável para Windows, deverá escolher a plataforma 64 bits, se estiver selecionado como 32 bits o erro ocorrerá.

Um detalhe, faço a configuração do vendorlib em tempo de execução como abaixo:
FDPhysPgDriverLink1.VendorLib := 'C:\<pasta_projeto>\libpq.dll';

Espero ter ajudado.
Responder

19/11/2015

Rodrigo Rodrigues

Olá Fabriccio,

Eu estava com o mesmo problema, e não quis ter que instalar a versão de 32 bits porque não vai ser essa a que vai estar em produção.
Para contornar esse erro em DesignTime, eu baixei o pacote ZIP de 32 bits da mesma versão que eu tenho instalada de 64 bits.
Extraí apenas a pasta 'bin', renomeei para 'bin32' e colei na pasta de instalação do Postgre.
No arquivo FDDrivers.ini, apontei para o arquivo 'libpq.dll' dentro da pasta bin32 e, voilá, tudo funcionando.
Quando compila em 64 bits não tem problema nenhum, em tempo de execução, mas se der algum galho, só copiar na pasta do executável os arquivos .dll indicados em http://docwiki.embarcadero.com/RADStudio/XE8/en/Connect_to_PostgreSQL_(FireDAC)

libpq.dll
ssleay32.dll
libeay32.dll
libintl-8.dll
libiconv-2.dll

Acho q isso acontece pq a Embarcadero insiste em fazer o RAD Studio na versão 32 bits ainda.. Devia pelo menos dar opção de instalar a IDE em 32 ou 64 bits.
Responder

07/12/2015

Richard Slater

Faça o seguinte, vá no painel de controle-->Sistema do lado esquerdo clique em Configuração avançado do sistema, depois em Variáveis do ambiente, e no grupo variáveis do ambiente localize a variável patch clique em editar e no final da linha adicione um ; e logo em seguida sem espaço copie e cole o caminho completo da localização das dlls na pasta do postgres. comigo funcionou perfeitamente nas versões 32 e 64 tb não precisei alterar o arquivo FDDrivers.ini espero ter ajudado :)
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar