Problema na conexão ZEOSDBO-7.0.3-stable para SGDB PostgreSQL 9.1.4 com o Delphi XE

01/02/2013

13

Boa Tarde Pessoal!

Estou com um problema ao tentar conectar o SGDB PostgreSQL 9.1.4 com o Rad Studio XE (Delphi XE), com o Componente ZEOSDBO-7.0.3-stable. No momento da instalação do componente foi tranqüilo,sem muito erro, porém quando eu foi utilizar o componente ZConnection fiz todo o processo de configuração das propriedade do mesmo:
    ClientCodepage: UTF8
    DataBase: O nome da base de dado.
    HostName: "LocalHost" no meu caso.
    Password: a minha senha do PostgreSql.
    Port: 5432.
    Protocol: postgresql-8. //Detalhe mesmo mudando para a versão 9 da o mesmo problema.
    User: postgres.


Ao tentar Conectar deu esse problema a baixo:

   None of the dynamic libraries can be found or is not loadable: libpq81.dll, libpq.dll!
   Use TZConnection.LibraryLocation if the location is invalid....


Detalhe já colei em System32 e no SysWOW64 porém sem muito êxito. Pois continua mostrando essa mesma mensagem. O que seria esse erro TZConnection.LibraryLocation?

Aguardo a sua resposta
Grato Helbert Augusto da Silva
Responder

Post mais votado

17/02/2015

Não li todos os comentários, mas vou dar a minha contribuição (mesmo que seja repetido).

O problema do Postgres x Zeos x Delphi, é que quando se gera um aplicativo 32 bits (geralmente Delphi 7), não podemos esquecer que ele não vai conseguir conversar nativamente com um aplicativo (Postgres) de 64 bits via suas libpq.dll de 64 bits.

O problema é o Delphi 32 bits x libpq.dll 64 bits.

Mas todos querem usar um Postgres 64 bits. É possível ??? Simmm !!

Baixem o Postgres 64 bits (que será instalado), e baixem o Postgres 32 bits sem instalador (zip apenas), de 32 bits.

Após instalar o Postgres 64 bits, descompactem o Postgres 32 bits em algum lugar, e procurem as dlls da pasta bin (libpq.dll principalmente).

Coloquem onde quiserem e apontem o ZeosConnection para onde estiverem as dll de 32 bits.

E sejam felizes !
Responder

Mais Posts

01/02/2013

Bruno Leandro

Olá, parece meio maluco, mas eu tive um problema parecido, ai instalar no pg64 bits, ai para funcionar continuei usando o 64 mais utilizei as dlls do 32bits, na pasta system32 e syswow64, tenta fazer o teste.
Responder
nossa vou fazer esse teste pois estou com o mesmo problema porem no delphi 7.
Responder

01/02/2013

Helbert Silva

Ok! Bruno!

Vou fazer isso.

Muito Obrigado.
Responder

01/02/2013

Helbert Silva

Olá Bruno!

Então como só tinha baixado a versão de 64bits do postgresql-9.1.4-1-windows-x64 e entrei no site do ProstgreSql só para baixar a mesma versão do PostgreSql, porém a de 32Bits mais não tem mais. As que têm no site são:

Versão: 9.2.2 , 9.1.7 , 9.0.11 , 8.4.15, 8.3.22 


Quais dessas versões eu posso baixar e que é compatível com o ZeosDBO 7.0.3?
No meu caso vou ter que desinstalar o PostgreSql-9.1.4-1-windows-x64 e instalar a versão mais nova para fazer esse procedimento que vc tinha mencionado anteriormente? Se sim Instalo qual devo instalar o de 64bits ou de 32bits se for de 64 bits. como eu consigo a libpq.Dll da 32bits para colar no diretório System32?

Aguardo sua Resposta!

Muito Obrigado meu Amigo!
Responder

01/02/2013

Bruno Leandro

tenta utilizar as dll desta instalação

http://get.enterprisedb.com/postgresql/postgresql-9.1.7-1-windows.exe
Responder

01/02/2013

Helbert Silva

Ok! Bruno!

Só um momento, já posto o resultado.

Grato Helbert
Responder

01/02/2013

Helbert Silva

tenta utilizar as dll desta instalação

http://get.enterprisedb.com/postgresql/postgresql-9.1.7-1-windows.exe


Bruno como eu faço para pegar esse .Dll dessa versão? Vou ter que instalar ele sobre o que tenho na minha máquina?

Aguardo a sua Resposta.

Grato Helbert
Responder

01/02/2013

William

Olá Helbert!

Notei que vc postou uma dúvida na seção comentários do meu artigo sobre conexão utilizando ZEOS, como essa dúvida é muito comum
resolvi responder pelo fórum, assim todos podem ter acesso facilmente.

Configurar uma conexão ZEOS com PostgreSQL no Win 64bits, é uma tarefa ardua, chata e que não tem muita lógica.

Abaixo seguem os passos:

1 - Copiei as dlls (libpq.dll, libpq81.dll) para o diretório do arquivo executável do sistema.

2 - Copiei a libpq81.dll para a pasta bin dentro do diretório de instalação do PostgreSQL 9.1.4.

3 - Adicionei na variável (Path) de ambiente do windows o seguinte caminho "C:\Program Files (x86)\PostgreSQL\9.1\bin".

4 - No componente de ZConnection selecionei o protocol "postgresql-7" ( eu sei que parece estranho, mas é assim q funcionou).

Testei esses passos no seguinte cenário:

- Windows Seven Ultimate 64bits
- Delphi XE
- PostgreSQL 9.1.4
- ZEOS 7.0.0
Responder

01/02/2013

Helbert Silva

Ok! wllfl

O Windows que estou utilizando é Professional é do mesmo jeito de configurar?

Grato Helbert
Responder

01/02/2013

William

Acredito q seja a mesma coisa Helbert, só esqueci de mencionar que o PostgreSQL 9.1.4 é 32 bits.
Responder

02/02/2013

Helbert Silva

Bom Dia a Todos!!

Primeiramente venho agradecer a todos vcs pela ajuda,meus amigos não consegui resolver o meu problema.

Olá, parece meio maluco, mas eu tive um problema parecido, ai instalar no pg64 bits, ai para funcionar continuei usando o 64 mais utilizei as dlls do 32bits, na pasta system32 e syswow64, tenta fazer o teste.


Conforme foi orientado pelo Bruno acima de pegar a Libpq.dll do PostgreSql 9.1.4 de 32bits, porém como já foi descrito nesse tópico por mim, na época que baixei o PostgreSql não fiz o Download da versão de 32bis. Foi orientado a tentar com a .Dll da versão PostgreSql 9.1.7 32bits, Fiz a instalação do mesmo foi no diretório do PostgreSql copiei a libpq.dll e colei no dois Diretórios SysWOW64 e no System32. Porém continuou a mostra a mesmo mensagem a baixo:

 Configuração para Conectar o Zeos
 ClientCodepage: UTF8
 DataBase: O nome da base de dado.
 HostName: "localhost" no meu caso.
 Password: a minha senha do PostgreSql.
 Port: 5432.
 Protocol: postgresql-9. //Detalhe mesmo mudando para a versão 9 da o mesmo problema.
 User: postgres.
 


Erro mostrado:

None of the dynamic libraries can be found or is not loadable: libpq.dll!
      Use TZConnection.LibraryLocation if the location is invalid..


Bom como mostrou o mesmo erro anteriormente decide cria uma base de dados como teste na Versão do PostgreSql 9.1.7, porém sem muito êxito. Decidi mostrar o Detalhe do erro do TZConnetction.LibraryLocation para uma melhor analise segue abaixo o mesmo:

[15CA1CC1]{ZPlain150.bpl} ZPlainLoader.TZNativeLibraryLoader.LoadNativeLibrary (Line 221, "..\..\src\plain\ZPlainLoader.pas" + 14) + $39
[15CA2EF8]{ZPlain150.bpl} ZPlainDriver.TZAbstractPlainDriver.Initialize (Line 436, "..\..\src\plain\ZPlainDriver.pas" + 9) + $8
[04F89CA3]{ZDbc150.bpl } Zdbcconnection.TZAbstractDriver.GetPlainDriver + $53
[04F89FF2]{ZDbc150.bpl } Zdbcconnection.TZAbstractConnection + $96
[1D6486E6]{ZComponent150.bpl} Zdbcpostgresql.TZPostgreSQLDriver.Connect + $12
[04F898AD]{ZDbc150.bpl } Zdbcconnection.TZAbstractDriver.Connect + $39
[04F73A11]{ZDbc150.bpl } Zdbcintfs. + $0
[1D6C4A9A]{ZComponent150.bpl} Zabstractconnection.TZAbstractConnection.Connect + $11A
[1D6C4305]{ZComponent150.bpl} Zabstractconnection.TZAbstractConnection.SetConnected + $2D
[5008A366]{rtl150.bpl  } TypInfo.SetOrdProp (Line 1796, "TypInfo.pas" + 33) + $0
[2104A2A2]{designide150.bpl} DesignEditors.TPropertyEditor.SetOrdValue (Line 841, "DesignEditors.pas" + 2) + $E
[2104B383]{designide150.bpl} DesignEditors.TEnumProperty.SetValue (Line 1410, "DesignEditors.pas" + 5) + $4
[21049F19]{designide150.bpl} DesignEditors.TPropertyEditor.Edit (Line 671, "DesignEditors.pas" + 11) + $14
[20B0370E]{coreide150.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 867, "PropInsp.pas" + 18) + $16
[21197C49]{vclide150.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 619, "IDEInspListBox.pas" + 2) + $A
[2119951A]{vclide150.bpl} IDEInspListBox.TInspListBox.EditDblClick (Line 1191, "IDEInspListBox.pas" + 0) + $2
[5027E4FD]{vcl150.bpl  } Controls.TControl.DblClick (Line 7195, "Controls.pas" + 1) + $14
[5027E678]{vcl150.bpl  } Controls.TControl.WMLButtonDblClk (Line 7238, "Controls.pas" + 4) + $C
[5027DF74]{vcl150.bpl  } Controls.TControl.WndProc (Line 7074, "Controls.pas" + 91) + $6
[50282118]{vcl150.bpl  } Controls.TWinControl.IsControlMouseMsg (Line 9616, "Controls.pas" + 9) + $25
[50282838]{vcl150.bpl  } Controls.TWinControl.WndProc (Line 9831, "Controls.pas" + 144) + $6
[211973B3]{vclide150.bpl} IDEInspListBox.TPropInspEdit.WndProc (Line 360, "IDEInspListBox.pas" + 7) + $4
[50281ED8]{vcl150.bpl  } Controls.TWinControl.MainWndProc (Line 9552, "Controls.pas" + 3) + $6
[500B067C]{rtl150.bpl  } Classes.StdWndProc (Line 13491, "Classes.pas" + 8) + $0
[50359C65]{vcl150.bpl  } Forms.TApplication.StopHintTimer (Line 10491, "Forms.pas" + 3) + $6
[50358AFF]{vcl150.bpl  } Forms.TApplication.ProcessMessage (Line 9760, "Forms.pas" + 23) + $1
[50358B42]{vcl150.bpl  } Forms.TApplication.HandleMessage (Line 9790, "Forms.pas" + 1) + $4
[50358E6D]{vcl150.bpl  } Forms.TApplication.Run (Line 9927, "Forms.pas" + 26) + $3
[004ACCE2]{bds.exe     } bds.bds (Line 201, "" + 8) + $FFFB


Uma outra tentativa que eu fiz foi postado pelo o meu amigo wllfl. Fiz case todos os procedimentos citado abaixo:

{quote]Olá Helbert!

Notei que vc postou uma dúvida na seção comentários do meu artigo sobre conexão utilizando ZEOS, como essa dúvida é muito comum
resolvi responder pelo fórum, assim todos podem ter acesso facilmente.

Configurar uma conexão ZEOS com PostgreSQL no Win 64bits, é uma tarefa ardua, chata e que não tem muita lógica.

Abaixo seguem os passos:

1 - Copiei as dlls (libpq.dll, libpq81.dll) para o diretório do arquivo executável do sistema.

2 - Copiei a libpq81.dll para a pasta bin dentro do diretório de instalação do PostgreSQL 9.1.4.

3 - Adicionei na variável (Path) de ambiente do windows o seguinte caminho "C:\Program Files (x86)\PostgreSQL\9.1\bin".

4 - No componente de ZConnection selecionei o protocol "postgresql-7" ( eu sei que parece estranho, mas é assim q funcionou).

Testei esses passos no seguinte cenário:

- Windows Seven Ultimate 64bits
- Delphi XE
- PostgreSQL 9.1.4
- ZEOS 7.0.0


Os procedimentos para adicionei na variável (Path) de ambiente do Windows de ambiente do Windows o seguinte caminho "C:\Program Files (x86)\PostgreSQL\9.1\bin". Como eu faço para encontrar essa variável para adicionar o mesmo?

Aguardo as respostas de vocês!

Desde já agradeço a ajuda de vocês.
Helbert.

Responder

02/02/2013

William

Poxa Helbert que pena, mas vamos continuar tentando resolver.

Estou disponibilizando para download nesse link as 2 dlls 32bits (libpq.dll, libpq81.dll) que mencionei no meu post:
[url]http://www.4shared.com/rar/nDmEvL-J/Dlls.html[/url]

Qualquer coisa poste novamente...
Responder

04/02/2013

Helbert Silva

Bom Dia a Todos!

wllfl infelizmente eu não consegui baixar o arquivo, você poderia enviar para mim por e-mail:

helbert_augusto_silva@hotmail.com
ou trelbeh@gmail.com


Poxa Helbert que pena, mas vamos continuar tentando resolver.

Estou disponibilizando para download nesse link as 2 dlls 32bits (libpq.dll, libpq81.dll) que mencionei no meu post:
[url]http://www.4shared.com/rar/nDmEvL-J/Dlls.html[/url]

Qualquer coisa poste novamente...


Desde de já agradeço.
Helbert.
Responder

04/02/2013

Helbert Silva

Bom Dia a Todos!

Alguém saberia dizer se existe outro componente gratuito que faz essa conexão com Delphi XE e PostgreSql? e Como eu faço para conectar o PostgreSQL 9.1.4 ou PostgreSql mais recente com o Drive ODBC_PostgreSQL para Delphi XE, pois eu fiz uma tentativa utilizando o Drive ODBC_PostgreSql e não apareceu na paleta Data Explorer do Delphi XE o ODBC para fazer a conexão, alguém saberia me dizer como fazer para aparecer?

Aguardo a sua resposta Grato Helbert.
Responder

10/05/2013

Carlos Amaral

Pessoal, boa noite.

Após várias tentativas, a solução foi até meio que besta.

Coloquei a libpq.dll e a libintl-8.dll na pasta windows\system32 e coloquei este caminho na variável de ambiente PATH.

Tentei e funfou.

Alguém se habilita a fazer o mesmo ? Caso funcione, será que há algum problema neste caminho ?

Abraço.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira