3

Qt5プロジェクトの1つでODBCドライバーを使用しようとしています。

ドライバーをコンパイルQODBCし、ドライバーdllをQt \ Qt5.0.0 \ 5.0.0 \ msvc2010 \ plugins\sqldriversフォルダーにコピーしました。

次のコードを試してみると:

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

次のエラーが発生します。

QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3

ロードしようとすると同じエラーが発生しますQODBC3

QODBCおよびドライバーが存在する場合でもQODBC3、QtはドライバーをロードできませんでしQODBCた。

Windows 7(64ビット)PCを実行しています。

誰かがそのようなエラーに遭遇しましたか?何が間違っているのかについての手がかりはありますか?

4

1 に答える 1

5

この問題は、odbc sql ドライバーのコンパイル中に使用された Visual Studio のバージョンが正しくないことが原因であることがわかりました。

私のコンピューターには VS 2008 と VS 2010 の両方がありました。Qt5.0 は VS2010 を使用していました。しかし、odbc sql ドライバーをコンパイルしたときは、VS2008 を使用していました。そして、それが問題を引き起こしました。

Qt は sql odbc ドライバーを検出できましたが、ロードできませんでした。

VS2010を使用してodbcドライバーを再コンパイルすることでこれを解決し、odbcドライバーは完全に機能します。

Qt 5.0 で sql odbc ドライバーをコンパイルして使用する手順は次のとおりです。

  1. qt コマンド プロンプトを開きます。
  2. これは、Qt の [スタート] メニューにあります。
  3. vc++ 環境変数を設定します。

    • これを行うには、cd で C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ フォルダーに移動し、vcvarsall.bat を実行します。
      注意すべき重要な点は、Qt で使用されているのと同じバージョンの Visual Studio を使用してドライバーをコンパイルすることです。 .
  4. \Qt5.0.0\5.0.0\Src\qtbase\src\plugins\sqldrivers\odbc ソース フォルダーに cd

  5. qmake odbc.pro

  6. nmake

    • 正しく実行されると、コンパイルされた qsqlodbc.dll および qsqlodbcd.dll が \Qt5.0.0\5.0.0\Src\qtbase\plugins\sqldrivers フォルダーで利用可能になります。
  7. qt ベースのアプリケーションをデプロイする際、qsqlodbc.dll (リリース バージョン) を sqldrivers フォルダーにコピーする必要があります。
于 2013-01-25T01:30:19.800 に答える