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:(http://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/odbc
mój przypadek:
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
-
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.so
Server = 192.168.x.x
Port = 51271
- w projekcie Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");