Pasos para activar/probar QODBC en Mac OS ((Seirra) hacia MSSQL o cualquier otra base de datos ODBC:
Síntoma 1:la aplicación Qt Run (depuración) se bloquea (el programa finalizó o se bloqueó inesperadamente). Síntoma 2:Qt Creator con paquetes Qt prediseñados (herramienta de mantenimiento).
Síntoma 3:falta el controlador freeTDS (libtdsodbc.so) después de instalar los paquetes freeTDS.
Síntoma 4:Qt compilado/configurado antes o sin unixODBC.
- Descargue e instale unixODBC (debe hacerse antes de instalar freeTDS )(www.unixODBC.org ) / (Controladores) / (unixODBC-2.3.4.tar.gz)
descomprimir y descomprimir los paquetes.
./configure --prefix=/usr/local/unixODBC
(asegúrese de que puede escribir O sudo)
make
sudo make istall
- Descargue e instale freeTDS:(http://www.freetds.org/ ) / ( Enlaces rápidos) / (Versiones más recientes) / (Versión estable)
descomprimir/descomprimir el paquete.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Nota:--with-unixodbc
hará que se instale el controlador (libtdsodbc.so).
-
Desafortunadamente, posiblemente el complemento ODBC en Qt debería reconstruirse:
-
Si está utilizando las bibliotecas Qt precompiladas, deberá descargar las fuentes mediante MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Dígale a qmake dónde encontrar los archivos de encabezado de unixODBC y las bibliotecas compartidas (aquí se supone que unixODBC está instalado en /usr/local/unixODBC) y ejecute make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
mi caso:
cd /usr/local/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/odbc
qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
-
si eso va correctamente:obtendrá las nuevas librerías QODBC cumplidas:
cd ../plugins/sqldrivers/
copia los nuevos paquetes por ejemplo a :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Configure /etc/local/unixODBC/etc/odbc.ini (es posible que necesite permisos de root modificar)
(No es necesario configurar freeTDS):
- (¿Qué puerto? ¿Qué versión -> Ejecutar
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Crear/Modificar entrada en /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- en proyecto Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");