BDE エイリアスの操作
メモ: ボーランド データベース エンジン(BDE)の使用は推奨されません。今後 BDE は機能拡張されません。たとえば、BDE では Unicode がサポートされていません。BDE を使用して新たに開発しないことをお勧めします。既存のデータベース アプリケーションを BDE から dbExpress に移行することを検討してください。
セッションに関連付けられたデータベース コンポーネントには、それぞれに BDE エイリアスが付けられています(ただし、Paradox および dBASE のテーブルにアクセスする場合には、エイリアスの代わりに完全修飾パス名を使用することもできます)。 セッションでは、その存続期間中にエイリアスを作成、変更、削除することができます。
AddAlias メソッドを使用すると、SQL データベース サーバーの BDE エイリアスを新しく作成することができます。 AddAlias は 3 つのパラメータを取ります。 エイリアス名の文字列、使用する SQL Link ドライバを指定する文字列、エイリアス用のパラメータが入った文字列リストの 3 つです。 たとえば次のコードでは、AddAlias を使用して、InterBase サーバーにアクセスするための新しいエイリアスをデフォルト セッションに追加しています。
var AliasParams: TStringList; begin AliasParams := TStringList.Create; try with AliasParams do begin Add('OPEN MODE=READ'); Add('USER NAME=TOMSTOPPARD'); Add('SERVER NAME=ANIMALS:/CATS/PEDIGREE.GDB'); end; Session.AddAlias('CATS', 'INTRBASE', AliasParams); ... finally AliasParams.Free; end; end;
TStringList *AliasParams = new TStringList(); try { AliasParams->Add("OPEN MODE=READ"); AliasParams->Add("USER NAME=TOMSTOPPARD"); AliasParams->Add("SERVER NAME=ANIMALS:/CATS/PEDIGREE.GDB"); Session->AddAlias("CATS", "INTRBASE", AliasParams); . . . } catch (...) { delete AliasParams; throw; } delete AliasParams;
AddStandardAlias を使用すると、Paradox、dBASE、または ASCII のテーブルの BDE エイリアスを新しく作成することができます。 AddStandardAlias は 3 つの文字列パラメータを取ります。 エイリアスの名前、アクセス対象の Paradox または dBASE テーブルの完全修飾パス、拡張子を持たないテーブルを開く際に使用するデフォルト ドライバの名前の 3 つです。 たとえば次のコードでは、AddStandardAlias を使用して、Paradox テーブルにアクセスするための新しいエイリアスを作成しています。
AddStandardAlias('MYDBDEMOS', 'C:\TESTING\DEMOS\', 'Paradox');
Session->AddStandardAlias("MYBCDEMOS", "C:\\TESTING\\DEMOS\\", "Paradox");
セッションにエイリアスを追加すると、BDE はエイリアスのコピーをメモリ内に格納します。メモリ内のコピーは、このセッションと、ConfigMode プロパティに cfmPersistent が含まれているセッションでしか利用できません。 ConfigMode は、セッション内のデータベースでどの種類のエイリアスを使用できるかを示すセットです。 デフォルトの設定は cmAll で、これは [cfmVirtual, cfmPersistent, cfmSession] というセットに変換されます。 ConfigMode が cmAll の場合、セッションでは、そのセッション内で作成されたすべてのエイリアス(cfmSession)、ユーザーのシステム上の BDE 構成ファイルに含まれるすべてのエイリアス(cfmPersistent)、BDE がメモリ内に保持しているすべてのエイリアス(cfmVirtual)を見ることができます。 ConfigMode を変更すると、セッション内のデータベースが使用できる BDE エイリアスを制限することができます。 たとえば ConfigMode を cfmSession に設定すると、セッションからはそのセッション内で作成されたエイリアスしか見えなくなります。 その他の BDE 構成ファイルに含まれるエイリアスやメモリ内のエイリアスはすべて使用できなくなります。
新しく作成したエイリアスをすべてのセッションや他のアプリケーションで利用できるようにするには、セッションの SaveConfigFile メソッドを使用します。 SaveConfigFile は、他の BDE 対応アプリケーションから読み出したり使用したりできる BDE 構成ファイルに、メモリ内のエイリアスを書き込みます。
エイリアスを作成した後には、ModifyAlias を呼び出してエイリアスのパラメータを変更することができます。 ModifyAlias は 2 つのパラメータを取ります。 変更対象のエイリアスの名前と、変更するパラメータとその値を含む文字列リストです。 たとえば次のコードでは、ModifyAlias を使って、デフォルト セッション内で CATS エイリアスの OPEN MODE パラメータを READ/WRITE に変更しています。
var List: TStringList; begin List := TStringList.Create; with List do begin Clear; Add('OPEN MODE=READ/WRITE'); end; Session.ModifyAlias('CATS', List); List.Free; ...
TStringList *List = new TStringList(); List->Clear(); List->Add("OPEN MODE=READ/WRITE"); Session->ModifyAlias("CATS", List); delete List;
同じセッション内で作成されたエイリアスを削除するには、DeleteAlias メソッドを呼び出します。 DeleteAlias が取るパラメータは 1 つで、削除対象のエイリアスの名前です。 DeleteAlias を呼び出すと、セッションからそのエイリアスを利用できなくなります。
メモ:SaveConfigFile を呼び出して BDE 構成ファイルに書き込んだエイリアスは、DeleteAlias を呼び出してもファイルから削除されません。 構成ファイルからエイリアスを削除するには、DeleteAlias を呼び出した後で、もう一度 SaveConfigFile を呼び出してください。
セッション コンポーネントでは、パラメータ情報やドライバ情報など、BDE エイリアスに関する情報を取得するためのメソッドを提供しています。 次の 5 つです。
- GetAliasNames:セッションがアクセスできるエイリアスのリストを返します。
- GetAliasParams:指定したエイリアスのパラメータのリストを返します。
- GetAliasDriverName:エイリアスが使用する BDE ドライバの名前を返します。
- GetDriverNames:セッションで使用できるすべての BDE ドライバのリストを返します。
- GetDriverParams:指定したドライバのドライバ パラメータを返します。
セッション情報とメソッドの詳細は、「BDE でのトランザクションの使用」を参照してください。