0

QtをQOCIで(実際には他のプラグインと一緒に)使用しようとしていますが、何らかの理由で使用できません。これが私がしたことと結果です:

1- http://doc.qt.nokia.com/latest/sql-driver.html#qoci プラグインが正常にビルドされました。

2-プラグインのデバッグとリリースのdllファイルとlibファイルをplugins/sqldriversにコピーし、OCI.DLLを%WINDIR%\ system32にコピーしました(plugins / sqldriversは、QPSQLやQMYSQLなどの他のプラグインがある場所です)

3- QSqlDatabase :: isDriverAvailable(QOCI)はfalseを返し、QMYSQLおよびQPSQLの場合はtrueを返します。QMYSQLとQPSQLについても同じことをしました

4- QStringList qsl = QSqlDatabase :: drivers(); 返される文字列リストにQOCIはありません。ただし、QMYSQL、QPSQLなどがあります。

追加のチェック:依存関係ウォーカーでqsqloci4.dllを開いた場合、3つのdllを見つけることができませんでした:1-QtCore4.dll 2-QtSql4.dll 3-MSVSC80.dllただし、依存関係ウォーカーでqsqlpsql.dllを開いたときにそれらを見つけることもできません。qsqloci4.dllの依存関係のため、dllのロードは失敗しなかったと思います。しかし、それでも、どんなアイデアも歓迎します。

ニュース

LoadLibrary(_T("C:\\QtSDK\\Desktop\\Qt\\4.7.3\\msvc2005\\plugins\\sqldrivers\\qsqloci4.dll");

LoadLibrary(_T("C:\\QtSDK\\Desktop\\Qt\\4.7.3\\msvc2005\\plugins\\sqldrivers\\qsqlocid4.dll");

失敗します!!! これらのファイルの両方が指定されたパスに存在することに注意してください。

このエラーのため、Qtもプラグインをロードできないと思います。質問は少し異なりますが、この場合、なぜLoadLibraryが失敗するのですか?何か案は?

前もって感謝します。

4

2 に答える 2

0

Windowsでプラグインを構築する方法

プラグインをビルドするには、Oracle ClientInstallationCDからOracleClientInstallerのオプション「Programmer」を選択するだけで十分です。

次のようにプラグインをビルドします(ここでは、OracleクライアントがC:\ oracleにインストールされていることを前提としています)。

set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake -o Makefile oci.pro
nmake

Microsoftコンパイラを使用していない場合は、上記の行でnmakeをmakeに置き換えてください。

アプリケーションを実行するときは、oci.dllパスをPATH環境変数に追加する必要もあります。

set PATH=%PATH%;c:\oracle\bin
于 2011-07-27T14:10:02.190 に答える
0

exe を含むディレクトリに sqldrivers というフォルダを作成する必要があります。使用しているすべての SQL ドライバー DLL をそこに置きます (oracle oci.dll、ociw32.dll、oraociei12.dll、oraons.dll、qsqloci4.dll、qsqlocid4.dll の場合)。

于 2013-11-21T09:06:06.037 に答える