Получение физического пути к таблице

Как получить физический путь к таблице?

Если ссылка на таблицу получена через псевдоним, то физический путь к ней выяснить не так просто. Для этого необходимо применить функцию BDE DbiGetDatabaseDesc. Данной функции в качестве параметров передаются имя псевдонима и указатель на структуру DBDesc. Структура DBDesc будет заполнена информацией, относящейся к этому псевдониму. Определение структуры:

pDBDesc = ^DBDesc;
DBDesc = packed record    { Описание данной базы данных }
  szName: DBINAME;        { Логическое имя (или псевдоним) }
  szText: DBINAME;        { Описательный текст }
  szPhyName: DBIPATH;     { Физическое имя/путь }
  szDbType: DBINAME;      { Тип базы данных }
end;
Физическое имя/путь будет содержаться в поле szPhyName структуры DBDesc.

Возможные значения, возвращаемые функцией DBIGetDatbaseDesc:

DBIERR_NONE – описание базы данных для pszName было успешно извлечено.
DBIERR_OBJNOTFOUND – база данных, указанная в pszName, не была обнаружена.
Приведенный ниже пример кода демонстрирует получение физического пути для компонента TTable, использующего псевдоним DBDemos:

var
  vDBDesc: DBDesc;
  DirTable: String;
begin
  Check(DbiGetDatabaseDesc(PChar(Table1.DatabaseName), @vDBDesc));
  DirTable := Format('%s\%s', [vDBDesc.szPhyName, Table1.TableName]);
  ShowMessage(DirTable);
end;