Oracle
 sql >> база данни >  >> RDS >> Oracle

Qt приложение се срива при използване на ODBC драйвер (macOS)

Стъпки за активиране/тестване на QODBC на Mac OS ((Seirra) към MSSQL или всяка друга ODBC DB:

Симптом 1:Приложението Qt Run (Debug) се срива (програмата неочаквано завършва/се срива). Симптом 2:Qt Creator с предварително изградени Qt пакети (MaintenanceTool).

Симптом 3:драйвер за freeTDS (libtdsodbc.so) липсва след инсталиране на пакети freeTDS.

Симптом 4:Qt е изграден/конфигуриран преди или с липсващ unixODBC.

  1. Изтеглете и инсталирайте unixODBC (трябва да се направи преди инсталирането на freeTDS )(www.unixODBC.org ) / (Драйвери) / (unixODBC-2.3.4.tar.gz)

разархивирайте и разархивирайте пакетите.

./configure --prefix=/usr/local/unixODBC (уверете се, че можете да пишете ИЛИ sudo)

make sudo make istall

  1. Изтеглете и инсталирайте freeTDS:(http://www.freetds.org/ ) / ( Бързи връзки) / (Последни версии) / (Стабилна версия)

разархивирайте/разархивирайте пакета.

./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/

make

sudo make istall

Забележка:--with-unixodbc ще накара драйвера (libtdsodbc.so) да бъде инсталиран.

  1. За съжаление, вероятно 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/
  1. Конфигурирайте /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

    1. в проекта Qt:

    QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");

    mydb.setDatabaseName("MYDSN")

    mydb.setUserName("name on Database");

    mydb.setPassword(" password on Database");




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:експортирайте таблица с blobs в .sql файл, който може да бъде импортиран отново

  2. Създаване на задание в Oracle с помощта на DBMS_JOB

  3. SQL Server еквивалент на Bulk Collect в Oracle

  4. ORA-29531:няма метод в грешка в класа

  5. Какъв е еквивалентът на REF CURSOR на Oracle в MySQL, когато използвате JDBC?