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

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Xavier Pacheco

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

{/codecitation}

Добавить комментарий