Иллюстрированный самоучитель по C++ Builder

Выбор информации из базы данных. Перенос программы управления базой данных на другой компьютер.

В качестве иллюстрации сказанного в листинге 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.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.