1

ここで奇妙な問題が発生しました。私のPCでいくつかのアプリ、デバッグとリリースを作成しましたが、正常に動作します。それを他のPCにコピーすると、開発用のものがない場合、問題が発生します:

私のアプリケーションはいくつかの firebird データベース ファイル.FDBを開き、そこからいくつかのデータを取得する必要があります。

質問は少し複雑ですが(申し訳ありませんが、私の英語は下手です)、説明しようと思います

私のPCで

fbclient.dllビルドされた.exeを含むフォルダーに入りました。そして、自分の.exeファイルがあるディレクトリから削除すると、他のPCと同じエラーが表示され、 .FDBファイルを開くことができませんでした。その場所にあるとき.dll- すべてがうまくいきます。

私が使用Dependency Walkerして開くと、Firebirdファイルmyapp.exeについては何もありません! .dllまるで使っていないfbclient.dllか、まったく使っていないように見えますgds32.dll が、そうではないと思います!

他のPCでは

fbclient.dllの場所にありmyapp.exeます。しかし、データベースファイルを開く方法はありません - アプリは動作しません! インストールしようとしましたが Firebrid 2.5(私のPCでも同じでした)、何も変わりませんでした。また、 にバインドされたfirbirdDependency Walkerデータベースが見つかりません。.dllmyapp.exe

質問を理解していただければ幸いです。

myapp.exe他の PC で FDB ファイルを開くにはどうすればよいですか?

PS

アプリは で作成されましたQt。この情報が役立つ場合

UPD 私はこれに疲れましたが、それも役に立ちませんでした(しかし、他の多くの人を助けました):

sqldriversのフォルダにコピーしmyapp.exeてこれを書き込んだmain.cpp

 QStringList list_path;    
    QDir dir = QDir(app.applicationDirPath()+"./sqldrivers");    
    list_path << dir.absolutePath () << app.libraryPaths ();    
    app.setLibraryPaths( list_path  );
4

2 に答える 2

0

データベースに接続できるようにするにqsqlibase.dllは、フォルダーにプラグインが必要./sqldriversであり、適切なバージョン (宛先マシンで使用されているもの) に対してビルドする必要があります。依存関係ウォーカーで「qsqlibase.dll」を開くとfbclient.dll、依存関係を確認できます。fbclient.dll

于 2013-11-10T08:01:10.630 に答える
0

Firebird データベースを開くには、Firebird サーバーをインストールして実行する必要があります (おそらく開発マシンにインストールされていますfbembed.dll) fbclient.dll

于 2013-11-09T14:11:56.400 に答える