Problema na conexão ZEOSDBO-7.0.3-stable para SGDB PostgreSQL 9.1.4 com o Delphi XE
01/02/2013
0
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
Helbert Silva
Post mais votado
17/02/2015
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 !
Carlos Amaral
Mais Posts
01/02/2013
Bruno Leandro
01/02/2013
Andreza Oliveira
01/02/2013
Helbert Silva
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!
01/02/2013
Bruno Leandro
http://get.enterprisedb.com/postgresql/postgresql-9.1.7-1-windows.exe
01/02/2013
Helbert Silva
Só um momento, já posto o resultado.
Grato Helbert
01/02/2013
Helbert Silva
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
01/02/2013
William
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
01/02/2013
Helbert Silva
O Windows que estou utilizando é Professional é do mesmo jeito de configurar?
Grato Helbert
01/02/2013
William
02/02/2013
Helbert Silva
Primeiramente venho agradecer a todos vcs pela ajuda,meus amigos não consegui resolver o meu problema.
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.
02/02/2013
William
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...
04/02/2013
Helbert Silva
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
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.
04/02/2013
Helbert Silva
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.
10/05/2013
Carlos Amaral
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.