Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Awaria aplikacji Qt podczas korzystania ze sterownika ODBC (macOS)

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.

  1. 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

  1. 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).

  1. 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/
  1. 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

    1. w projekcie 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. Po błędzie wznów następny typ obsługi błędów w Oracle PL/SQL

  2. Oracle wybierz wspólny podciąg

  3. zapytanie Oracle do grupowania różnicy dat według godziny

  4. APEX:Przekieruj po zalogowaniu na stronę z argumentami

  5. Jak połączyć się z bazą danych Oracle w R?