Выбор информации из базы данных. Перенос программы управления базой данных на другой компьютер.
В качестве иллюстрации сказанного в листинге 5.4 приведен вариант реализации функции OnActivate, которая создает псевдоним для базы данных organizer. Предполагается, что база данных находится в подкаталоге DATA того каталога, в котором находится выполняемый файл программы. Непосредственное создание псевдонима выполняет функция AddStandardAlias, которой в качестве параметра передается псевдоним и соответствующий ему каталог.
Так как во время разработки программы нельзя знать, в каком каталоге будет размещена программа работы с базой данных и, следовательно, подкаталог базы данных, имя каталога определяется во время работы программы путем обращения к функциям Paramstrto) и ExtractFilePatch. Значение первой – полное имя выполняемого файла программы, второй – путь к этому файлу. Таким образом, процедуре AddStandardAlias передается полное имя каталога базы данных.
Листинг 5.4. Создание псевдонима во время работы программы.
void__fastcall TForml::FormActivate(TObject *Sender) { TDateTime Today, // сегодня NextDay; // следующий день (не обязательно завтра) Word Year, Month, Day; // год, месяц, день Today = Now (}; DecodeDate(Today, Year, Month, Day); Labell › Caption = "Сегодня " + IntToStr(Day) + " " + stMonth[Month-l] + " " + IntToStr(Year) + " года, " + stDay[DayOfWeek(Today) – 1]; Label2 › Caption = "Сегодня и ближайшие дни"; // вычислим следующий день // если сегодня пятница, то, чтобы не забыть, // что запланировано на понедельник, считаем, что следующий // день – понедельник switch (DayOfWeek(Today)) { case 6: NextDay = Today + 3; break; // сегодня пятница case 7: NextDay = Today + 2; break; // сегодня суббота default: NextDay = Today + 1; break; } #define DIN_ALIAS // псевдоним доступа к БД создается динамически // если псевдоним создан при помощи Database Desktop // или BDE Administrator, директиву tfdefine DIN_ALIAS //надо удалить ("закомментировать") #ifdef DIN_ALIAS // псевдоним создается динамически // создадим псевдоним для доступа к БД Session › ConfigMode = cmSession; Session › AddStandardAlias("organizer", ExtractFilePath(ParamStr(0))+"DATA\\", "PARADOX"); // база данных "Ежедневник" // в формате Paradox #endif Forml › Tablel › Active = true; // открыть таблицу // запрос к базе данных: есть ли дела, запланированные // на сегодня и завтра Queryl › SQL › Strings[3] = "(Date_F >= '"+ FormatDateTime("dd/mm/yyyy",Today)+"') AND " + "(Date_F <= '"+ FormatDateTime("dd/mm/yyyy",NextDay)+'")"; Queryl › 0pen(); DataSourcel › DataSet = Forml › Queryl; if (! Queryl › RecordCount) ( ShowMessage("На сегодня и ближайшие дни никаких дел не запланировано."); } }
Перенос программы управления базой данных на другой компьютер
Часто возникает необходимость перенести базу данных на другой компьютер. В отличие от процесса переноса обычной программы, когда, как правило, достаточно скопировать только выполняемый файл (ехе-файл), при переносе программы управления базой данных необходимо выполнить перенос BDE.
Здесь следует вспомнить, что BDE представляет собой совокупность программ, библиотек и драйверов, обеспечивающих работу прикладной программы с базой данных. Выполнить перенос BDE на другой компьютер "вручную" довольно трудно. Поэтому для переноса (распространения) программы, работающей с базами данных, Borland рекомендует создать установочную программу, которая выполнит копирование всех необходимых файлов, в том числе и компонентов BDE.
В качестве средства создания установочной программы Borland настоятельно советует использовать утилиту InstallShield Express, которая входит в состав всех наборов C++ Builder. Поставляемая с C++ Builder версия этой утилиты специально адаптирована к задаче переноса и настройки BDE.