Информация о псевдониме BDE

Как получить информацию о псевдониме BDE?

Решение 1
procedure TForm1.Button1Click(Sender: TObject);
{ Получаем из BDE путь MyAlias }
const
  AliasName = 'MyAlias';

var
  MyAliasPath: string;
  ParamsList: TStringList;
begin
  ParamsList := TStringList.Create;
  try
    with Session do begin
      Session.GetAliasNames(ParamsList);
      Session.GetAliasParams(AliasName,ParamsList);
      MyAliasPath := Copy(ParamsList[0], 6, 50) + '\';
    end;
  finally
    ParamsList.Free;
  end;
  Label1.Caption := MyAliasPath;
end;
Примечание
Для работы данного примера бросьте на форму компоненты Label, Button. В обработчике события OnClick кнопки наберите код. Вместо MyAlias напишите любой реальный псевдоним (alias).

Решение 2
uses
  DbiProcs, DBiTypes;

{ Возвращает каталог базы данных для псевдонима (без обратного слеша) }
function GetDataBaseDir(const Alias: string): String;
var
  sp: PChar;
  Res: pDBDesc;
begin
  try
    New(Res);
    sp := StrAlloc(length(Alias) + 1);
    StrPCopy(sp, Alias);
    if DbiGetDatabaseDesc(sp, Res) = 0 then Result := StrPas(Res^.szPhyName)
    else Result := '';
  finally
    StrDispose(sp);
    Dispose(Res);
  end;
end;
Примечание
Для работоспособности этого кода надо иметь активную таблицу в приложении с тем же псевдонимом, что и Alias. Этот код несколько избыточен, поэтому предлагается вариант из Help:

uses
  DBiTypes;

function GetDataBaseDir(const Alias: string): String;
var
  R: DBDesc;
begin
  Check(DbiGetDatabaseDesc(PChar(Alias), @R));
  Result := R.szPhyName;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := GetDataBaseDir('Alias');
end;