1

背景: ボーランド データベース エンジン (BDE) を使用する Delphi で作成されたアプリケーションがあり、BDE エイリアスを介してデータを参照します。各ユーザーがデータの同じ場所を参照するリモート デスクトップ サービスを介して実行することができました。これは、全員が同じデータを見たい場合に最適です。ただし、異なるデータを見ているユーザーの 2 つのグループ (またはそれ以上) を取得できるようにしたいと考えています。このような状況が可能になるようにアプリケーションを書き直しているところですが、応急処置が必要です。

質問:

2 つのアプリケーションが同じ BDE エイリアスを参照する方法はありますか?ただし、参照するディレクトリはアプリケーションごとに異なりますか?

また

2 人のユーザーが RDS (リモート デスクトップ サービス - サーバー 2008 または SBS 2008/11 の下) 経由でログインして、BDE の 2 つの異なる構成を取得することは可能ですか? (1 人のユーザーは別名 DATA を c:\users\joe\data と見なし、もう 1 人のユーザーは c:\users\bob\data と見なします)。

4

2 に答える 2

3

エイリアスを使用するポイントは、1 つの場所で 1 つのフォルダーを使用するように設定できることです。エイリアスを変更すると、どこでもフォルダーが変更されます。

ALIAS を使用したくない場合は、アプリケーションで ALIAS の代わりにディレクトリを直接使用します。これは、TDatabase.DatabaseName を使用して行うことができます (私のメモリ サーバーがうまく機能している場合、現時点では Delphi を起動して検証できません)。これ)。

于 2011-06-02T04:59:24.597 に答える
1

これに対する 2 つの解決策を見つけました。どちらも TDatabase コンポーネントを使用しています。最初の解決策は、エイリアス名が MyAlias の場合、テーブルを開く前に TDatabase を作成し、AliasNameDatabaseNameの両方を「MyAlias」に設定してから、TDatabase を開いてDirectoryプロパティを探したい場所に設定することです。データのために。これにより、BDE のエイリアスがローカルのエイリアスで上書きされ、指定したディレクトリからすべてのテーブルが開かれます。デフォルトのセッション (たとえば、Session.GetAliasParams) から何かを引き出す場合、これは機能しません。

2 番目の解決策は、BDE で別のエイリアス (たとえば MyOtherAlias) をセットアップし、TDatabase コンポーネントでAliasNameを「MyOtherAlias」に、DatabaseNameを「MyAlias」に設定することです。この場合も、テーブル/クエリを開く前にこれを行います。これははるかにうまく機能しているようで、デフォルトのセッションで機能します (「MyAlias」のディレクトリを引き出すと、「MyOtherAlias」のディレクトリが得られます)。

これは非常に難解であり、他の誰かがそれを役に立つと思ったら驚くでしょうが、これがスタックオーバーフローを不明瞭なプログラミングの質問に答えるのに最適な理由です.

于 2011-06-14T23:50:11.070 に答える