Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Conectar FireDAC en Delphi XE8 con Postgres (https://www.clubdelphi.com/foros/showthread.php?t=88828)

elaguna 07-08-2015 18:16:39

Conectar FireDAC en Delphi XE8 con Postgres
 
Qué tal, saludos.

Pues volviendo al consumismo con Embarcadero, adquirimos la fabulosa nueva versión de RAD, XE8, wow :)!!!

Y aprovechando que nos acaban de solicitar que una de nuestras aplicaciones sea multiplataforma/multidispositivos, pues queremos utilizar la nueva versión. Lo último que utilizamos es XE.

En la aplicación utilizamos PostgreSQL y Zeos, sin ningún problema, pero al tratar de migrar a la nueva versión, todavía no hay una versión de Zeos para XE8, entonces como sugieren en este hilo http://www.clubdelphi.com/foros/showthread.php?t=85795&highlight=firedac+postgres, queremos usar FireDAC.

Es ahí en donde tenemos el problema, nos pide la librería libpq.dll y demás librerías (hasta ahí todo normal), Postgres está instalado y funciona correctamente, buscamos en la ayuda de Embarcadero para este tema y seguimos las indicaciones: http://docwiki.embarcadero.com/RADStudio/XE8/en/Connect_to_PostgreSQL_%28FireDAC%29.

Solicitamos el apoyo de Embarcadero y nos mandaron exactamente la misma información.

El error que nos manda es

Cita:

[FireDAC][Phys][PGSQL]-314. Cannot load vendor library [libpq.dll]. No se puede encontrar el módulo especificado. Hint: check it is in the PATH directories or application EXE directories, and has x86 bitness.
Siguiendo las indicaciones y modificando el archivo FDDrivers.ini agrego las líneas

Cita:

[PG]
VendorLib=C:\Program Files (x86)\PostgreSQL\9.4\lib\libpq.dll
Pero el error es el mismo:

Cita:

[FireDAC][Phys][PGSQL]-314. Cannot load vendor library [C:\Program Files (x86)\PostgreSQL\9.4\lib\libpq.dll]. No se puede encontrar el módulo especificado. Hint: check it is in the PATH directories or application EXE directories, and has x86 bitness.
Todo es x86 (DB, XE8, y dll).

¿Alguien ha tratado de utilizar FireDAC con esta DB y cómo lo han solucionado?

Gracias a todos.

elaguna 12-08-2015 07:15:48

Pues ya pude establecer la conexión, no sé si era el procedimiento correcto, pero funcionó.

La librería de cliente que por default trae Postgres, no funciona y no hubo forma de hacer que delphi la reconociera, lo intenté en un proyecto nuevo y lo mismo. La solución fué utilizar la librería libpq74.dll de los componentes Zeos que habíamos estado utilizando, pero no en el archivo de configuración (sigue mostrando el error), sino por medio del componente TFDPhysPgDriverLink.

Espero que le sirva a alguien que se encuentre con el mismo problema.

Saludos a todos.

gatosoft 13-08-2015 16:22:44

Hola elaguna,

Pues si han podido invertir en el XE8, no estaría de mas que hicieran un esfuerzo mas y le apostaran a UniDAC de la empresa DevArt.

En mi concepto son muy buenos componentes y se comunican diretamente con PostgreSQL. sin los enredos tipicos que tiene la famosa Libpq.dll

De hecho yo los adquirí para poder trabajar con postgreSQL, y poder utilizar multiples motores en mis aplicaciones.

La verdad no tienen nada que envidiarle a FireDAC y son muy estables.

Cabe decir que adquirí UniDac antes que Embarcadero adquiriera FireDAC, pero aun asi no los cambio. Te los recomiendo.

elaguna 20-08-2015 18:58:38

Qué tal gatosoft.

Estoy revisando la información en la página de DevArt y parece prometedor, ojalá no nos pase lo mismo que con los TMS component después de adquirirlos, resulta que en el soporte nos vamos enterando que algunos componentes y/o características no son completamente multidispositivos, eso pasa por no leer las letras pequeñas.

Aunque los UniDAC no son realmente caros, lo vamos a considerar antes de que se siga disparando el precio del dólar aquí en México. :(

Gracias por tu sugerencia, ahí les comento cómo nos va.

gatosoft 21-08-2015 02:30:15

Pues Devart me ha parecido muy buena empresa. Con respecto a TMS, te cuento que también los adquirí y tabién he sentido que no todo es lo que parece... hay componentes en los que he comenzado a trabajar para despues tener que abandonar. En general, creo que a la empresa le hace falta enfocarse en mejorar muchos aspectos de sus productos.... pero no se, tal vez sea un poco apresurado, y me haga falta explorarlos mas.

Saludos

elaguna 25-08-2015 20:27:48

Completamente de acuerdo.

Estoy probando los UniDAC y son una maravilla :D, nada de andar correteando dll's, cambié mi conexión y los querys; y todo bien sin teclear nada.

Como los parámetros de configuración los pusimos por código, no hubo más que quitar "éstos" y poner "aquellos" y todo funcionó perfecto. ^\||/. Creo que sí los vamos a adquirir.

Aunque soy partidario del software libre (mi corazón está partido entre Fedora y Ubuntu), mi estómago (y el de mis hijos) me hace trabajar en Windows y recientemente en OSX, éste último genial hasta el momento.

Referente a TMS, lo que me llama la atención es que desarrollan componentes que, en mi opinión, deberían de ser mejores, con esto me refiero a ampliar y en cierto modo mejorar, las características de los componentes ancestros. Sin embargo, lo que he notado, es que le quitan propiedades o métodos fundamentales, para agregarle otros, que si bien hace que se vea todo muy bonito, en ocasiones te hacen dar muchas vueltas para llegar a algo que anteriormente se hacía en 4 teclazos :confused: y al final acabas por abandonarlos, ya que si alguno te da trabajo y lo tienes que quitar, y si el resto deben de mantener el mismo aspecto visual, tienes que cambiar todos y, en el mejor de los casos, cambiar algunas decenas de líneas de código. :(

Pero eso es otra historia.

Muchas gracias por tus sugerencias.

Saludos cordiales.

gatosoft 26-08-2015 16:54:29

Yo he trabajado con PostgreSQL y Con Oracle estos componentes.. Con Oracle es aun mejor pues no requiere tener instalado el cliente oracle, que generalmente es bastante problemático(trabaja directamente por TCP/IP)

Del paquete Unidac, te recomiendo el componente TVirtualTable... es un sueño de componente, con este hago rápidamente implementaciones o demos con datos ficticios (sin apuntar a un motor de DB)

Tambien lo utilizo con DB temporal para guardar configuraciones de parámetros en memoria y para intercambiar información de via Datasnap...


Por otro lado, siendo justos, debo reconocer por el lado de TMS, que me ha ido bien con los componente TAdvFlexcel, el TPlaner el TAdvStringGrid.

Estoy probando el paquete de Plugins y creo que los voy a utilizar.

Estoy de acuerdo que manejarlos a veces implica un poco mas de esfuerzo, pero lo he resuelto creando clases basadas en estos componentes para agilizar las operaciones que utiulizo mas frecuentemente.

Hay otros componentes de TMS con los que estaba esperanzado, pero no los he podido desempantanar... como los TDBAdvGrid, El módulo de seguridad, Aurelius (Si los adquirí pero no los he podido poner en uso)

Saludo,

ccgiraldo2 26-08-2015 21:26:44

Buenas tardes elaguna

Has tratando de instalar el Odbc de postgres?

Ya que utilizo FireDac con conexión a postgres y me funciona normal.

elaguna 04-09-2015 05:35:58

Gracias por tu atención.

Cita:

Empezado por ccgiraldo2 (Mensaje 495869)
Buenas tardes elaguna

Has tratando de instalar el Odbc de postgres?

Si te refieres a instalar ODBC por la cuestión de las librerías, la respuesta es sí pero, como les comentaba, FireDac no se conecta y me manda los errores antes mencionados, sí se pudo conectar pero tuve que andar peregrinando con librerías de otro componente.

Si te refieres a utilizar ODBC para realizar la conexión, sí lo he utilizado hace ya varios años, la idea es ya no utilizar capas intermedias o las menos posibles, por esa misma razón anteriormente trabajábamos con Zeos.

Cita:

Empezado por ccgiraldo2 (Mensaje 495869)
Ya que utilizo FireDac con conexión a postgres y me funciona normal.

Esa es la cosa, ojalá me puedas dar un poco de orientación, en cómo lo solucionaste-configuraste.

Gracias

Al González 04-09-2015 07:44:03

Cita:

Empezado por gatosoft (Mensaje 495860)
Del paquete Unidac, te recomiendo el componente TVirtualTable... es un sueño de componente, con este hago rápidamente implementaciones o demos con datos ficticios (sin apuntar a un motor de DB)

Tambien lo utilizo con DB temporal para guardar configuraciones de parámetros en memoria y para intercambiar información de via Datasnap...

Hola gatosoft, un gusto como siempre. Me saltó una duda sobre esta parte de tu discurso. Desconozco el alcance de ese componente, pero te preguntaría ¿qué ventajas tiene sobre el estándar TClientDataSet?

Perdón por desviar un poco el tema. Un saludo.

Al González.


La franja horaria es GMT +2. Ahora son las 10:10:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi