Если ссылка на таблицу получена через псевдоним, получить физический путь к ней не так просто. Для получения этого пути необходимо использовать функцию 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; |