Стъпки за активиране/тестване на QODBC на Mac OS ((Seirra) към MSSQL или всяка друга ODBC DB:
Симптом 1:Приложението Qt Run (Debug) се срива (програмата неочаквано завършва/се срива). Симптом 2:Qt Creator с предварително изградени Qt пакети (MaintenanceTool).
Симптом 3:драйвер за freeTDS (libtdsodbc.so) липсва след инсталиране на пакети freeTDS.
Симптом 4:Qt е изграден/конфигуриран преди или с липсващ unixODBC.
- Изтеглете и инсталирайте unixODBC (трябва да се направи преди инсталирането на freeTDS )(www.unixODBC.org ) / (Драйвери) / (unixODBC-2.3.4.tar.gz)
разархивирайте и разархивирайте пакетите.
./configure --prefix=/usr/local/unixODBC
(уверете се, че можете да пишете ИЛИ sudo)
make
sudo make istall
- Изтеглете и инсталирайте freeTDS:(http://www.freetds.org/ ) / ( Бързи връзки) / (Последни версии) / (Стабилна версия)
разархивирайте/разархивирайте пакета.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Забележка:--with-unixodbc
ще накара драйвера (libtdsodbc.so) да бъде инсталиран.
-
За съжаление, вероятно ODBC плъгинът на Qt трябва да бъде преустроен:
-
Ако използвате предварително изградените Qt библиотеки, ще трябва да изтеглите източници с помощта на MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Кажете на qmake къде да намери заглавните файлове на unixODBC и споделените библиотеки (тук се предполага, че unixODBC е инсталиран в /usr/local/unixODBC) и стартирайте make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
моят случай:
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
-
ако това върви правилно:ще получите съвместими QODBC нови библиотеки:
cd ../plugins/sqldrivers/
копирайте новите пакети например в :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Конфигурирайте /etc/local/unixODBC/etc/odbc.ini (може да имате нужда от root права за mdify)
(Няма нужда да конфигурирате freeTDS):
- (кой порт? коя версия -> Изпълнете
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Създаване/промяна на запис в /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- в проекта Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");