Kroky pro aktivaci/testování QODBC na Mac OS ((Seirra) směrem k MSSQL nebo jakékoli jiné ODBC DB:
Příznak 1:Zhroucení aplikace Qt Run (Debug) (program neočekávaně skončil/selhal). Příznak 2:Qt Creator s předem sestavenými balíčky Qt (MaintenanceTool).
Příznak 3:Po instalaci balíčků freeTDS chybí ovladač freeTDS (libtdsodbc.so).
Příznak 4:Qt bylo vytvořeno/nakonfigurováno před nebo s chybějícím unixODBC.
- Stáhněte si a nainstalujte unixODBC (musí být provedeno před instalací freeTDS )(www.unixODBC.org ) / (ovladače) / (unixODBC-2.3.4.tar.gz)
rozbalte a rozbalte balíčky.
./configure --prefix=/usr/local/unixODBC
(ujistěte se, že můžete napsat NEBO sudo)
make
sudo make istall
- Stáhněte si a nainstalujte freeTDS:(http://www.freetds.org/ ) / ( Rychlé odkazy) / (Nejnovější verze) / (Stabilní vydání)
rozbalte/rozbalte balíček.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Poznámka:--with-unixodbc
způsobí instalaci ovladače (libtdsodbc.so).
-
Bohužel, možná by měl být ODBC plugin na Qt přestavěn:
-
Pokud používáte předem sestavené knihovny Qt, budete si muset stáhnout zdroje pomocí MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Řekněte qmake, kde najde hlavičkové soubory unixODBC a sdílené knihovny (zde se předpokládá, že unixODBC je nainstalován v /usr/local/unixODBC) a spusťte make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
můj případ:
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
-
pokud to půjde správně:získáte splněné nové knihovny QODBC:
cd ../plugins/sqldrivers/
zkopírujte nové balíčky například do :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Nakonfigurujte /etc/local/unixODBC/etc/odbc.ini (možná budete potřebovat oprávnění root upravit)
(Není potřeba konfigurovat freeTDS):
- (který port? která verze -> Spustit
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Vytvořit/upravit záznam v /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- v projektu Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");