0

QDB2 プラグインを挿入/インストールする方法は? (IBM DB2 に接続するための Qt 用 SQLDriver)。

私は試した

cd $QTDIR/plugins/src/sqldrivers/db2
qmake -o Makefile "INCLUDEPATH+=$DB2DIR/include" "LIBS+=-L$DB2DIR/lib -ldb2"
make

しかし、$QTDIR は定義されていません。Qtはsudo apt-getでインストールされました...そして、フォルダーの場所がわかりませんまた、qmakeは実行されません。モードまたはオプションを認識できません。

QSqlDatabase::addDatabase("QDB2"); プラグインを挿入する方法を教えてください。働ける

4

1 に答える 1

0

これは少し古いですが、これを機能させるために同様の問題がありました。これも Google 経由で見つけたので、同じ問題に直面している他の人がいるかもしれません。

ところで: $QTDIR は、構成に合わせて変更することを意図しています。

Qt 5.7.1、バージョン 11.1 の IBM の DB2 Express-C エディション、および x64 に対してコンパイルする Visual Studio 2015 Update 3 を使用しました。手順は、対応する私のブログ投稿から取得されます。

すべてがインストールされていることを確認してください。次のパスを使用します。

C:\Qt\5.7\msvc2015_64\bin: location of the build tool qmake
C:\Qt\5.7\Src: location of Qt's source code (default location when the sources are fetched with the maintenance tool)
C:\Program Files\IBM\SQLLIB: location inside IBM's install directory where the sql library is located

別のパスを使用する場合は、次のビルド手順で適宜調整してください。

  1. Qt 5.7.1 にはバグがあり (Qt 5.8.0 で修正されたようです)、ソースを調整する必要があります。ファイルC:\Qt\5.7\Src\qtbase\src\sql\drivers\db2\qsql_db2.cppを開き、行 1190 を にd->hEnv = reinterpret_cast<SQLHANDLE>(env);、行 1191 を に変更します。d->hDbc = reinterpret_cast<SQLHANDLE>(con);

  2. 管理者権限で Visual Studio のコマンド ライン プロンプト (VS2015 x64 Native Tools-Eingabeaufforderung öffnen) を開きます。

  3. cdディレクトリへC:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2

  4. コマンドを実行しますC:\Qt\5.7\msvc2015_64\bin\qmake "INCLUDEPATH+=C:/progra~1/IBM/SQLLIB/include" "LIBS+=C:/progra~1/IBM/SQLLIB/lib/db2cli.lib"

    4.1. DB2 を別のディレクトリーにインストールした場合は、パスを調整します。

    4.2. 必ず置き換えProgram Filesてくださいprogra~1(そうしないと、スペースが原因で問題が発生する可能性があります)

  5. を実行C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2>nmakeしてライブラリをビルドします。いくつかの警告が表示される場合がありますが、それでも動作するはずです。成功した場合、生成されたライブラリは次の場所にあります。C:\Qt\5.7\Src\qtbase\plugins\sqldrivers

  6. インストールを実行C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\db2>nmakeして、作成されたライブラリがコピーされるようにしますC:\Qt\5.7\msvc2015_64\plugins\sqldrivers

  7. Qt Creator を起動し、sqlbrowser サンプル プロジェクトを開き、ビルドして実行します。成功した場合は、リストから QDB2 ドライバーを選択してデータベースに接続できるはずです。

于 2013-12-01T13:25:59.857 に答える