23 ноября 2020

Использование переменных среды в FireDAC

    Environment variables (переменные среды или переменные окружения) появились в 7-й версии Unix в 1979 году и с тех пор используются всеми операционными системами для хранения некоторых своих настроек. Например, всем пользователям Windows известен такой параметр как "PATH". Некоторые программы, чтобы указать путь, по которому нужно их искать, создают собственные переменные среды. Библиотека для работы с базами данных FireDAC позволяет программисту использовать переменные для указания пути к нужным файлам.
    FireDAC позволяет использовать переменные среды в указании пути к файлу в свойствах различных объектов:
  • TFDConnection в параметре Database для указания пути подключения к базе данных;
  • TFDScript в свойстве SQLScriptFileName;
  • TADMoniFlatFileClientLink в свойстве FileName;
  • TFDManager в свойстве ConnectionDefFileName;
  • TFDManager в свойстве DriverDefFileName;
  • TFDMSAccessService в свойствах Database и DestDatabase;
  • сервисных компонентах InterBase и Firebird в свойствах Database и BackupFiles.
Для этого в строковое значение перечисленных выше свойств включается макроподстановка в формате $(имя_переменной). Например, создадим переменную среды пользователя "MyCoolAppDB"
Edit environment variable
и используем ее в пути к базе данных SQLite "d:\MyCoolApp\DB\test.db":
FDConnection.Params.Database := '$(MyCoolAppDB)\test.db';
FireDAC сам заменяет косую черту разделителя в строке пути к файлу соответствующим для операционной системы значением. Поэтому в ней можно использовать как прямую, так и обратную косую черту.
    Кроме этого, у FireDAC есть несколько собственных предопределенных макроподстановок:
  • DOC - путь к папке "Документы";
  • TEMP - путь к папке с временными файлами;
  • RUN - путь к исполняемому файлу приложения;
  • RAND - случайное целое число;
  • NEXT - следующее целое число в указанном пути.
Например, путь к базе данных "c:\Users\BlackCat\Documents\MyCoolAppDB\test.db" можно задать так:
'$(Doc)/MyCoolAppDB\test.db'
а путь к новому файлу резервной копии базы данных так:
'd:\db-bak\test$(NEXT).bak'
Использование переменных среды в FireDAC расширяют функциональные возможности программы без написания дополнительного кода.


P.S. Я не нашел аналогичной возможности в UniDAC. Плохо искал?

Комментариев нет:

Отправить комментарий