Название: [РЕШЕНО] linux QODBC driver enable Отправлено: deMax от Май 03, 2017, 08:25 Debian 8.7, установил unixodbc, unixodbc-bin, unixodbc-dev. Qt 5.8 установил с исходниками. Не могу собрать QODBC.
cd ~/Qt5.8.0/5.8/Src/qtbase/src/plugins/sqldrivers/odbc ~/Qt5.8.0/5.8/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lodbc" odbc.pro Выдает Project ERROR: Library 'odbc' is not defined. unixodbc-dev установил файлы: /usr/include/autotest.h /usr/include/odbcinst.h /usr/include/odbcinstext.h /usr/include/sql.h /usr/include/sqlext.h /usr/include/sqltypes.h /usr/include/sqlucode.h /usr/include/unixodbc_conf.h /usr/include/uodbc_extras.h /usr/include/uodbc_stats.h /usr/lib/x86_64-linux-gnu/libodbc.a /usr/lib/x86_64-linux-gnu/libodbc.so /usr/lib/x86_64-linux-gnu/libodbccr.a /usr/lib/x86_64-linux-gnu/libodbccr.so /usr/lib/x86_64-linux-gnu/libodbcinst.a /usr/lib/x86_64-linux-gnu/libodbcinst.so /usr/share/doc/unixodbc-dev/NEWS.Debian.gz /usr/share/doc/unixodbc-dev/changelog.Debian.gz /usr/share/doc/unixodbc-dev/changelog.gz /usr/share/doc/unixodbc-dev/copyright Название: Re: linux QODBC driver enable Отправлено: titan83 от Май 03, 2017, 16:08 Была аналогичная проблема на Ubuntu 16 + Qt5.8. Сейчас все работает)
Пробуй в odbc.pro закомментить эту строку QMAKE_USE += odbc (было) #QMAKE_USE += odbc (стало) еще, на всякий случай, посмотри, где у тебя qmake лежит: which qmake, а то может так оказаться, что не тот qmake используется. Название: Re: linux QODBC driver enable Отправлено: __Heaven__ от Май 03, 2017, 17:14 Я бы ещё перепроверил, не врёт ли установщик и в /usr/lib/x86_64-linux-gnu действительно есть libodbc.so
Название: Re: linux QODBC driver enable Отправлено: deMax от Май 04, 2017, 07:56 Собрал unixodbc из исходников(не стал брать из репозитория debaian, почему то с ними не собиралось даже с закоментированной QMAKE_USE).
И закоментировал QMAKE_USE. Собралось. Скопировал Src/qtbase/plugins/sqldrivers/libqsqlodbc.so в Qt5.8.0/5.8/gcc_64/plugins/sqldrivers (в ней лежали libqsqlite.so, libqsqlmysql.so, libqsqlodbc.so). QSqlDatabase::drivers() выводит только QSQLITE Название: Re: linux QODBC driver enable Отправлено: titan83 от Май 04, 2017, 08:19 Чудес не бывает.
Вывод QCoreApplication::libraryPaths() и ldd libqsqlodbc.so в студию. Название: Re: linux QODBC driver enable Отправлено: deMax от Май 04, 2017, 08:47 Спасибо. С путями запутался....
Код: db = QSqlDatabase::addDatabase("QODBC"); Название: Re: linux QODBC driver enable Отправлено: titan83 от Май 04, 2017, 13:12 Под линуксом надо настраивать соединения.
Два файла: freetds.conf и odbc.ini (у меня оба в /etc, но я сам собирал и odbc, и freetds). freetds.conf Код: [global] odbc.ini Код: [LIMSDatabase] Код: [FreeTDS] Код: bool QWshDatabase::openDatabase(const QString &username, const QString &password, const QString &timeout) Название: Re: linux QODBC driver enable Отправлено: deMax от Май 25, 2017, 08:37 titan83, спасибо. Только хотелось бы чтобы подключения к нескольким базам были и пользователь в настройках программы задает ip, login, baseName.
Ладно под линуксом у меня только для отладки сборка. Название: Re: linux QODBC driver enable Отправлено: titan83 от Май 25, 2017, 17:05 titan83, спасибо. Только хотелось бы чтобы подключения к нескольким базам были и пользователь в настройках программы задает ip, login, baseName. Хм, ну тут два пути:Ладно под линуксом у меня только для отладки сборка. 1. Переписывать значения в freetds.conf и odbc.ini. Так у меня сделано сейчас. 2. Использовать строку подключения. Я не пробовал, но, возможно, будет работать. Если ты проверить и тут отпишешься, то будет просто замечательно. Что-то вроде, DRIVER={TDS Driver};Server=10.10.1.1;DATABASE=Obmen;Port=1433 Кстати, у меня под виндовс не работала строка подключения, пока не указал порт. |