
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •IBplementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •Interface
- •Часть 1 I. 104
- •Implementation
- •Implementation
- •Implementation
- •Часть I
- •Р ис. 1.46. Окно программы Звуки Windows
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •168 Част
- •Implementation
- •Часть 1
- •Interface uses
- •Implementation
- •Interface
- •Implementation
- •Часть 1
- •Часть 1 I Примеры и задачи
- •Часть 1 I Примеры и задачи
- •Implementation
- •205 Часть
- •Interface
- •Implementation
- •216 Часть 1
- •Поле т ип Размер Информация
- •Часть 1
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Часть 2 Таблица 2.2 (окончание)
- •252 Часть 2
- •Часть 2 I Delphi — краткий справочник
- •Часть 2
Implementation
{$R *.dfm}
1
226
Часть Щ
Примеры и задачи
227
'+#13+
//
запланированные на ближайшие дни
uses
Forms,
org_ in 'org_.pas' (Forml),
SysUtils,Dialogs,
Datelltils, // для доступа к IncDay
DBTables; // для доступа к Session, AddStandardAlias
{$R *.res}
var
Present: TDateTime; // сегодня
NextDay: TDateTime; // следующий день
Year, Month, Day : Word; // год, месяц, день
Query: TQuery; // запрос, обеспечивающий
// создание БД (таблицы) begin
Application.Initialize; Application.Title := 'Ежедневник'; Application.CreateForm(TForml, Forml);
{ Псевдоним для доступа к базе данных создается во время запуска программы и существует только во время работы программы.
База данных находится в том же каталоге, что и выполняемый файл программы. Имя каталога, в котором находится выполняемый файл, можно получить обратившись к функции ParamStr. }
// создадим псевдоним with Session do begin
ConfigMode := cmSession;
AddStandardAlias('diary', // псевдоним БД
ExtractFilePath(ParamStr(0)), // каталог 'PARADOX'); end;
// определим текущую дату Present:= Now; // Now — функция, возвращает текущую дату
// и время DecodeDate(Present, Year, Month, Day);
case {dot} DayOfWeek(Present) of 6: NextDay := IncDay(Present, 3) ; 7: NextDay := IncDay(Present,2) ; else NextDay := IncDay(Present,1)
end;
запланированные
// запрос к базе данных: есть ли дела, // на сегодня и ближайшие дни Forml.QueryI.SQL[3] :=
1(Data >= ' ' ' + FormatDateTime('dd/mm/yyyy',Present)+''')' + 'and'+
'(Data <= '''+ FormatDateTime('dd/mm/yyyy',NextDay)+'
try
Forml.Queryl.Open;
except
on E:EDBEngineError do
// Ошибка при выполнении запроса может
// быть вызвана тем, что файла базы данных нет.
// Предложить пользователю создать
// файл базы данных.
begin
MessageDlg('Файл таблицы базы данных не найден 'Таблица будет создана.',mtWarning,[mbYes],0);
Query := TQuerу.Create(Forml);
with Query do
begin
// сформируем запрос, обеспечивающий
// создание БД
SQL.Add('CREATE TABLE diary (');
SQL.Add('What CHAR(80),');
SQL.Add('Data DATE);');
ExecSQL; end;
// таблица создана
Forml.Queryl.Open; // выполним запрос
end;
end;
if Forml.Queryl.RecordCount <> 0 // есть дела,
// пятница // суббота
// выполнить запрос
228
Часть
Примеры и задачи
229
then
Forml.DataSourcel.DataSet := Forml.Queryl
else
begin
Forml.DataSourcel.DataSet := Forml.Tablel;
Forml.Tablel.Open;
ShowMessage('На сегодня и ближайшие дни1 +
'никаких дел не запланировано.'); end;
Application.Run; end.
unit org_; // модуль формы
I
Сразу после запуска программа посылает запрос к базе данных, для того чтобы выяснить, есть ли дела, запланированные
на сегодня. Если что-то намечено, то на экране появляется окно
Ежедневник.
Запрос к базе данных в начале работы программы формирует главная процедура приложения. Чтобы ее увидеть,
выберите из меню Project команду View Source. 1