.Net クライアントで組み込みの Firebird データベース サーバーにアクセスできない
Embedded Firebird サーバーを使用するプログラムの開発を目指していますが、.Net クライアントを使用して接続しようとするとエラーが発生します。複数のスレッドからのアドバイスに従って動作させましたが、わかりません。接続文字列とファイルを変更しようとしましたが、同じエラーが発生し続けます。
これが私の研究と私がこれまでに試したすべての詳細な説明です。
Visual C# 2010 で Firebird db 組み込みサーバーに接続して使用する方法
リンクで指定されたファイルをダウンロードし、手順に従ってコードを実行したところ、元のポスターと同じエラー メッセージが表示されました。
FirebirdSql.Data.FirebirdClient.FbException Message=ホスト "127.0.0.1" へのネットワーク リクエストを完了できません。
IP の代わりに「localhost」を使用すると、同じエラーが発生します。
受け入れられた答えは、すべての .dll ファイルと構成ファイルがプロジェクト ファイル (コードのあるディレクトリ) と出力ディレクトリ (bin/debug) にコピーされていることを確認することです。zip フォルダー内のすべてのファイルをコピーしました。さらに、@Robin Van Persi は「コンパクトな .Net データ プロバイダー」を使用しないと述べていますが、これを使用しているかどうかはどうすればわかりますか? 質問のリンクからファイルをダウンロードしました。
@PlageMan によって提供された別の回答は、ServerType=1; を追加することです。接続文字列に追加し、これらのエラーを生成する DataSource および Port 属性を削除します。
FbConnection con = new FbConnection("User=SYSDBA;Password=masterkey;Database=TEST.FDB;Dialect=3;Charset=UTF8;ServerType=1;");
System.NotSupportedException Message=指定されたサーバーの種類が正しくありません。
FbConnection con = new FbConnection("User=SYSDBA;Password=masterkey;Database=TEST.FDB;Dialect=3;Charset=UTF8;");
System.ArgumentException Message=無効な接続文字列引数が指定されたか、必要な接続文字列引数が指定されていません。
@Toastgeraetによる最後の回答は、fbembed.dllの名前をfbclient.dllまたはgds32.dllに変更することを追加しています。3つの方法すべてを試しましたが、変化はありません。実際、 http://www.firebirdsql.org/en/firebird-net-provider-faq/には fbembded.dll と書かれていますが、それも機能しませんでした。
firebird組み込みデータベースを使用しているときにc#で接続エラーを解決する方法は?
元のポスターでも機能しなかった fbembed.dll の名前を fbclient.dll に変更することについて、同じアドバイスがあります。接続文字列で受け入れられた回答 ServerType=1 ですが、@cincura.net の回答の下のコメントにより、調査する新しい可能性が得られました。プロセッサ アーキテクチャ。残念ながら、64bt バージョンと 32 ビット バージョンを切り替えても違いはありませんでした。
Visual Studios Express を使用しているので、32bit 版に切り替えることが解決策だったのではないかと思いました。
-
このスレッドの最後のコメントは、32 ビットに変更しても問題が解決しなかったと言っている別の人です。
firebird 組み込みサーバーを使用しようとしています - 指定されたサーバーの種類が正しくありません
ServerType を 1 と 0 として見て、この投稿を見つけたので、ServerType に関する情報を検索することに戻りました。@Nigelの答えは、.Netプロバイダーの最新バージョンに更新することです。残念ながら、Firebird Web サイトの最新バージョン (4.5.1.0) を使用する方法がわかりません。これは、サンプルから FirebirdSql 名前空間が欠落しているためです。さらに、Visual Studio では、.Net をインポートするときに、間違ったバージョンの .Net がターゲットになっているという警告が表示されます。
私は何を間違っていますか?別の接続文字列または新しいバージョンの Firebird/.Net プロバイダーを使用する必要がありますか? 他に何か不足していますか?
この質問は重複と見なされる可能性があることを認識していますが、これまでに見つけた回答のどれも私の問題を解決していません. さらに、私が上で引用した以前の StackOverflow Q/A はすべて何年も前のものなので、誰かが共有する新しい情報を持っていることを願っています.