sql >> Databáze >  >> RDS >> Oracle

Selhání aplikace Qt při použití ovladače ODBC (macOS)

Kroky pro aktivaci/testování QODBC na Mac OS ((Seirra) směrem k MSSQL nebo jakékoli jiné ODBC DB:

Příznak 1:Zhroucení aplikace Qt Run (Debug) (program neočekávaně skončil/selhal). Příznak 2:Qt Creator s předem sestavenými balíčky Qt (MaintenanceTool).

Příznak 3:Po instalaci balíčků freeTDS chybí ovladač freeTDS (libtdsodbc.so).

Příznak 4:Qt bylo vytvořeno/nakonfigurováno před nebo s chybějícím unixODBC.

  1. Stáhněte si a nainstalujte unixODBC (musí být provedeno před instalací freeTDS )(www.unixODBC.org ) / (ovladače) / (unixODBC-2.3.4.tar.gz)

rozbalte a rozbalte balíčky.

./configure --prefix=/usr/local/unixODBC (ujistěte se, že můžete napsat NEBO sudo)

make sudo make istall

  1. Stáhněte si a nainstalujte freeTDS:(http://www.freetds.org/ ) / ( Rychlé odkazy) / (Nejnovější verze) / (Stabilní vydání)

rozbalte/rozbalte balíček.

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

make

sudo make istall

Poznámka:--with-unixodbc způsobí instalaci ovladače (libtdsodbc.so).

  1. Bohužel, možná by měl být ODBC plugin na Qt přestavěn:

    • Pokud používáte předem sestavené knihovny Qt, budete si muset stáhnout zdroje pomocí MaintenanceTool ($QTDIR/MaintenanceTool.app)

    • Řekněte qmake, kde najde hlavičkové soubory unixODBC a sdílené knihovny (zde se předpokládá, že unixODBC je nainstalován v /usr/local/unixODBC) a spusťte make:

    cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc

    můj případ: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

pokud to půjde správně:získáte splněné nové knihovny QODBC:

cd ../plugins/sqldrivers/

zkopírujte nové balíčky například do :

/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
  1. Nakonfigurujte /etc/local/unixODBC/etc/odbc.ini (možná budete potřebovat oprávnění root upravit)

(Není potřeba konfigurovat freeTDS):

  • (který port? která verze -> Spustit/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
  • Vytvořit/upravit záznam v /usr/local/unixODBC/etc/odbc.ini

    [MYDSN]

    Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so

    Server = 192.168.x.x

    Port = 51271

    1. v projektu Qt:

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

    mydb.setDatabaseName("MYDSN")

    mydb.setUserName("name on Database");

    mydb.setPassword(" password on Database");




  1. Problém s aktivním dotazováním na záznamy a heroku.

  2. Podporuje MySQL uživatelsky definované datové typy?

  3. Ignorovat duplicitní klíč?

  4. Rozdíl mezi VARCHAR a TEXT v MySQL