Давайте будем создавать алиаспрограммным путем, не заставляя пользователя лазить в BDE Administrator. Алиасы создаются при помощи компонента Session. Удобнее всего выполнять создание алиаса, а также открытие баз и прочие подготовительные операции в момент создания модуля данных, а закрытие сессии – в момент завершения его работы. Поэтому будем писать обработчик события OnCreate модуля данных. Убедитесь, что вы создаете обработчик именно для модуля данных (в инспекторе объектов вверху должно быть написано DM : TDM).
В разделе описаний (перед словом IMPLEMENTATION) надо объявить константы, задающие имя вашего алиаса и название директории, где лежат базы. Удобнее всего размещать базы в директории с каким-то фиксированным именем (например, DATA), которая отходит от директории местонахождения exe-файла программы (Рис. 26.4).
Рис. 30.4 Размещение файлов программы и БД.
Перед созданием алиаса надо проверить, не создан ли он уже (иначе возникнет ошибка). Проверку выполняет метод IsAlias объекта Session, а создание – метод AddStandardAlias. В результате имеем следующий код:
CONST My_Alias='DVD';
datapth='data';
var
dm: Tdm;
implementation
{$R *.dfm}
procedure Tdm.DataModuleCreate(Sender: TObject);
begin
// на всякий случай сначала закрываем
Active:=FALSE;
// директория хранения временных файлов
PrivateDir:=ExtractFilePath(PARAMSTR(0));
Active:=TRUE;
// если алиаса нет
// будем его сохранять в BDE
ConfigMode:=cmPersistent;
// создаем новый алиас AddStandardAlias(My_Alias,ExtractFilePath(PARAMSTR(0))+
datapth,'PARADOX');
// сохраняем алиас в BDE
// открываем базу данных
DataBase.AliasName:=My_Alias;
DataBase.Connected:=TRUE;
// открываем таблицу dvd.db
END;
На событии OnDestroy модуля данных надо закрывать таблицы, базы и сессию. Делается это так: