Desplegar aplicación en windows con. postgresql
-
Hola,
Todo funciona bien en mi PC, puedo conectarme al driver de postgresql.
He desarrollado una aplicación con c ++ y algunos archivos en qml, que se conectan a una base de datos postgresql.
He compilado mi ejecutable con mingw73_64, que es lo que trae la instalación de Qt 5.12.1.
Desde mi PC, intenté conectarme a una base de datos que es independiente de la arquitectura, es decir, me conecto a una base de datos postgresql 9.2 de 32 bits y a una base de datos postgresql 11 de 64 bits, y todo funciona.
Cuando intento implementar mi aplicación para usarla en otras PC, uso esto:windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>
que es como viene en la descripción de mi qt. Esto genera todos los dll asociados con mi aplicación, pero faltan los de postgres, por lo que he copiado las siguientes bibliotecas encontradas en la instalación de postgres:
para 64 bits
libeay32.dll
libiconv-2.dll
libintl-9.dll
libpq.dll
libxml2.dll
libxslt.dll
ssleay32.dll
zlib1.dllo para 32 bits, en caso de que me conecte a la base de datos postgres de 32 bits
libeay32.dll
libintl.dll
libpq.dll
ssleay32.dllCuando intento colocar estos archivos en otra PC, aparece un error de controlador no cargado.
y tengo los archivos dll de postgres mencionados, tengo la carpeta sqldrivers con su dll qsqlpsql.dll, pero no funciona para mí.
Intenté con dll diferente pero no lo entiendo.
Traté de crear mi propia biblioteca como dice en la versión de qtcd% QTDIR% \ qtbase \ src \ plugins \ sqldrivers
qmake - "PSQL_INCDIR = C: \ Archivos de programa \ PostgreSQL \ 11 \ include" PSQL_LIBDIR = "C: \ Archivos de programa \ PostgreSQL \ 11 \ lib \ ms"
nmake sub-psqlpero al hacer qmake desde la consola de Qt 5.12.1 (MinGW7.3.0 64 bit)
Se me muestra una lista de los controladores sql, pero solo los de SQLITE y ODBC están activados, pero el de postgresql no.
¿Cuál podría ser el problema que no se conecta en otras PC y en la mía si se conecta?
Antes de hacer este update de mi programa me funcionaba bien con 32 bit, pero ahora al compilarlo con 64 bit, no...
No se que mas.hacer.
Me imagino que sea un problema de que no me cargan las librerías de postgres de 64 bit.
Si ha alguien le ha pasado algo parecido, ojala me puedan guiar.Saludos
-
Hola
A parte de las librerías de Qt, creo que tienes que copiar alguna .dll de postgresql junto a tu ejecutable, mírate esta respuesta en otro hilo:
https://forum.qt.io/topic/51719/conexion-de-postgresql-con-qt/4
Un saludo
-
This post is deleted!