[Firebird-jp-general] サーバー機にインストールした際のデータベース一覧の取得

Back to archive index

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自体素晴らしいのにその存在すら(日本ではあまり)知られていないのはもったいないと思います。
もっとフランクでオープンな場所があればもっと普及しそうな気がしますけど、どうでしょうか?

以上、長文になりましたがお願い致します。




Firebird-jp-general メーリングリストの案内
Back to archive index