sql >> データベース >  >> RDS >> Oracle

ODBCドライバー(macOS)を使用するとQtアプリケーションがクラッシュする

    Mac OSでQODBCをアクティブ化/テストする手順((Seirra)MSSQLまたはその他のODBC DBに向けて:

    症状1:Qt実行(デバッグ)アプリケーションがクラッシュする(プログラムが予期せず終了/クラッシュする)症状2:Qtパッケージがビルド済みのQtクリエーター(MaintenanceTool)。

    症状3:freeTDSパッケージをインストールした後、freeTDSドライバー(libtdsodbc.so)が見つからない。

    症状4:unixODBCが欠落している、または欠落しているQtがビルド/構成されている。

    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. 残念ながら、QtのODBCプラグインを再構築する必要があるかもしれません:

      • ビルド済みの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を構成します(ルート権限が必要な場合があります> 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. PostgreSQLインストーラーを自分のアプリケーションインストーラーに追加する

    2. Oracleを手動でアンインストールするにはどうすればよいですか?

    3. mysqliでさらに問題が発生しています。結果の数値データ

    4. 主キーが指定されていない限り、テーブルから*を削除しないでください