PostgreSQL no Delphi XE8 com FireDac
10/04/2015
0
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
Post mais votado
12/04/2015
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
Mais Posts
10/04/2015
Marcos P
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 ?
12/10/2015
Marcio
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.
19/11/2015
Rodrigo Rodrigues
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.
07/12/2015
Richard Slater
Clique aqui para fazer login e interagir na Comunidade :)