2009-08-25 7 views
3

DelphiとFirebird 1.5を使用してアプリケーションを開発しました。ここでは、サーバーはアプリケーションと同じマシンにあります。私は、クライアントが別のマシンで動作している間に、Firebirdサーバ(Superserver)があるマシン(NT4)で実行されている別のサイトにアプリケーションを配備しています。Firebirdエイリアス

アプリケーションに修飾パスを含めるとアプリケーションがデータベースに接続できますが(t:\db\cinema.gdb)、エイリアスを使用することを当然としていますので、開発用マシンで同じコードを使用できます(ローカルサーバー)。

ので、二つの質問: - 各マシン上のアプリケーションと一緒に、またはサーバー上の「aliases.confを」ファイルが存在しなければならない

  1. エイリアスは何ですか? cinema = t:\db\cinema.gdb、データベースがマップされたドライブにあると仮定しますか? cinema = 192.168.2.121:f:firebird\db\cinema.gdb、サーバのIPアドレスとサーバが見ているデータベースへのパスを使用していますか?

答えて

3

aliases.confはサーバー上にのみ存在する必要があります。 そして、IPアドレスとサーバー上のデータベースへのフルパスを使って、常に完全なアドレスを使用する必要があります。ドライブのマッピングは変更される可能性があります(そして、あなたが少なくともそれを期待しているときには常にそうしています)。固定された場所にあるはずのファイルやデータベースへの参照として使用することはめったにありません。 個人的に私のC++ Builder/Firebirdアプリケーションではエイリアスは一切使用されていませんが、プログラムのiniファイルやレジストリエントリ(もちろんクライアント側)でフルパスを設定するだけです。とにかくiniファイルがあり、aliases.confファイルに別の依存関係を作成しません。

+0

私はiniファイルのオプションを考えていましたが、それを回避すると考えました。これはすべてのユーザーに設定する必要がありますが、エイリアスファイルはすべてのユーザーに役立ちます。 –

7
  1. エイリアスファイルサーバー上に存在しています!
  2. エイリアスはファイルに直接マップします。 cinema = c:\firebird\db\cinema.fdb。マップされたドライブを使用しないでください。パフォーマンスが低下します。クライアントはデータベース名servername:aliasで接続します。
+0

アプリケーションで 'localhost:cinema'という文字列を使用する必要がありますか?私は、 'localhost'はリモートサーバではなくローカルコンピュータを意味すると仮定しました。 –