Kroki aktywacji/testowania QODBC w systemie Mac OS ((Seirra) w kierunku MSSQL lub dowolnej innej bazy danych ODBC:
Objaw 1:Awaria aplikacji uruchamiającej Qt (debugowanie) (program nieoczekiwanie zakończony/uszkodzony). Objaw 2:Kreator Qt z gotowymi pakietami Qt (MaintenanceTool).
Symptom 3:Brak sterownika freeTDS (libtdsodbc.so) po zainstalowaniu pakietów freeTDS.
Objaw 4:Qt zbudowane/skonfigurowane przed lub z brakującym unixODBC.
- Pobierz i zainstaluj unixODBC (należy zrobić przed zainstalowaniem freeTDS )(www.unixODBC.org ) / (Sterowniki) / (unixODBC-2.3.4.tar.gz)
rozpakuj i rozpakuj pakiety.
./configure --prefix=/usr/local/unixODBC (upewnij się, że możesz napisać LUB sudo)
make
sudo make istall
- Pobierz i zainstaluj freeTDS:(https://www.freetds.org/ ) / ( Szybkie linki) / (Najnowsze wersje) / (Wersja stabilna)
rozpakuj/rozpakuj pakiet.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Uwaga:--with-unixodbc spowoduje zainstalowanie sterownika (libtdsodbc.so).
-
Niestety, prawdopodobnie wtyczka ODBC w Qt powinna zostać przebudowana:
-
Jeśli korzystasz z gotowych bibliotek Qt, musisz pobrać źródła za pomocą MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Poinformuj qmake, gdzie znaleźć pliki nagłówkowe unixODBC i biblioteki współdzielone (tutaj zakłada się, że unixODBC jest zainstalowany w /usr/local/unixODBC) i uruchom make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbcmój przypadek:
cd /usr/local/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/odbcqmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"make -
jeśli wszystko pójdzie poprawnie:otrzymasz zgodne nowe biblioteki QODBC:
cd ../plugins/sqldrivers/
skopiuj nowe pakiety na przykład do :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Skonfiguruj /etc/local/unixODBC/etc/odbc.ini (możesz potrzebować uprawnień roota do modyfikacji)
(Nie ma potrzeby konfigurowania freeTDS):
- (który port? jaka wersja -> Uruchom
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x -
Utwórz/zmodyfikuj wpis w /usr/local/unixODBC/etc/odbc.ini
[MYDSN]Driver = /usr/local/freeTDS/lib/libtdsodbc.0.soServer = 192.168.x.xPort = 51271- w projekcie Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");mydb.setDatabaseName("MYDSN")mydb.setUserName("name on Database");mydb.setPassword(" password on Database");