ohta
ohta****@winne*****
2016年 8月 30日 (火) 17:15:19 JST
初めまして。 現在、Firebirdを用いてアプリケーションを開発しようとしていますが、分からない所があるのでご教示下さい。 まず開発環境は以下になります。 サーバー機 OS:Windows10(これは不定。VISTA?7?以上にする予定) Firebird:3.0 開発PC OS:Windows7 言語:C#(WPF + Livet)、.NET Framework 4.5.2 Nugetより Firebird Entity Framework Provider 5.0.5 目的 ユーザーに複数DBを送付し、それを利用したアプリケーションを実行したい。 複数DBはユーザーが簡便に切り替え可能にしたい。 次に質問です 1)サーバー機とするPCにFirebirdをインストールし、接続する事は成功しました。 そしてDBを切り替えて(例えば、TEST.FDBをTEST2.FDBへ変更して)接続したいのですが、一覧を取得できずに悩んでいます。 FbConnectionのオブジェクトを作成する際に接続文字列を渡していますが、その内、Databaseについてはサーバー機の 絶対パスを指定しています。 例:var conxBuilder = new FbConnectionStringBuilder() { DataSource = "192.168.0.6", Database = @"C:\TEST.FDB", UserID = "SYSDBA", Password = "masterkey", Charset = "UTF8" }; 相対パスも指定できるのかもしれませんが、Firebirdのインストール先がProgram Filesにインストールされた場合、 相対パスではどれだけ遡ればUACの呪縛から解放されるのか不定なので絶対パスを用いたいです。 共有フォルダを作りそこへDBを追加するとも考えましたが、それだと絶対パスが取得できないと思っています。 (これは私が知らないだけかも・・・) このような時はどうしたらいいのでしょうか? 2)DBの存在チェックを var ps = FbProviderServices.GetProviderServices(_conx) as FbProviderServices; if (!ps.DatabaseExists(_conx, 1000, null)) FbConnection.CreateDatabase(_conx.ConnectionString, 16 * 1024); このようにしていますが、FbProviderServicesの使い方(というかこのクラスの目的として)合っているのでしょうか? ※DatabaseExists(_conx, 1000, null)のうち、1000とnullに関してはソース見る限り無視されていたので適当です。 3)これは質問というより要望に近いですが、メーリングリストではなく、掲示板形式のような質問を気軽にできる場所はないでしょうか? Firebird自体素晴らしいのにその存在すら(日本ではあまり)知られていないのはもったいないと思います。 もっとフランクでオープンな場所があればもっと普及しそうな気がしますけど、どうでしょうか? 以上、長文になりましたがお願い致します。