- •1. Описание практических работ
- •1.1 Тема: Введение в работу с удалёнными бд
- •1.1.1 Пр1 Проектирование структуры бд
- •1.1.2 Пр2 Создание и использование модуля данных
- •Использование компонента tMainMenu
- •2. Использование компонентов tdbGrid, Tрanel, TbitBtn
- •1.2 Тема: Проектирование серверной части приложения бд
- •1.2.1 Пр3 Создание и использование подстановочных полей (Lookup)
- •1.3 Тема: Визуальные средства проектирования структуры бд
- •1.3.1 Пр5 Использование графической среды AllFusion
- •1.2.2 Пр4 Использование команд для работы с индексами
- •1.4 Тема: Компоненты доступа к данным. Запросы на выборку данных
- •1.4.1 Пр6 Организация запросов на выборку данных
- •Создание запроса на выборку в базе данных для настольных систем
- •Создание запроса на выборку в приложении Access
- •1.4.2 Пр7 Использование методов для навигации по наборам данных
- •Изменение записи
- •Удаление содержимого поля или удаление всей записи
- •1.5.2 Пр9 Создание и использование объектов для вычисляемых полей (Calculated)
- •1.6 Тема: Хранимые процедуры, триггеры и генераторы. Обеспечение достоверности, целостности и непротиворечивости данных. Каскадные воздействия
- •1.6.1 Пр10 Методы для проверки правильности введенного в поле значения в приложениях бд
- •Проверка данных в поле
- •1.7 Тема: Сортировка, поиск и фильтрация данных в бд и в выборках
- •1.7.1 Пр11 Организация поиска записей с использованием метода Locate
- •1.7.2 Пр12 Организация поиска записей с использованием метода Lookup
- •1.8 Тема: Управление транзакциями и кэширование памяти
- •1.8.1 Пр13 Организация фильтрации записей по выражению
- •1.8.2 Пр14 Организация фильтра записей по диапазону
- •1.9 Тема: Перехват исключительных ситуаций и обработка ошибок
- •1.9.1 Пр15 Использование процедур для обработки исключений
- •1.10 Тема: Формирование и вывод отчетов
- •1.10.1 Пр16 Создание и использование составляющих отчета
- •Способы создания отчета
- •Создание отчета
- •1.10.2 Пр17 Использование возможностей импорта данных в отчет
- •Работа в Excel с данными Access
- •Копирование в Excel данных Access
- •1.11 Тема: Установка привилегий доступа к данным
- •1.11.1 Пр18 Создание справочной системы
- •1.12 Тема: Копирование и перенос данных. Восстановление данных
- •1.12.1 Пр19 Подключение справочного файла к приложению
- •1.13 Тема: Копирование клиентской части приложения бд
- •1.13.1 Пр20 Создание дистрибутива приложения
- •Создание дистрибутива для проекта калькулятора
1.9 Тема: Перехват исключительных ситуаций и обработка ошибок
1.9.1 Пр15 Использование процедур для обработки исключений
Цель: изучить процедуры для обработки исключений.
Обработчик исключений в приложении можно переопределить через Application.OnException. Этот обработчик вызывается приложением при исключении и имеет следующий тип:
type TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;
После установки обработчика Application.OnException обработку всех исключений можно представить диаграммой последовательности, приведенной на рис. 1.
Обработчик процедуры Assert. Обработка вызовов Assert производится переопределением указателя System.AssertErrorProc. Процедура обработчика должна иметь следующий синтаксис:
procedure AssertErrorHandler
(const Message, Filename: string; LineNumber: Integer; ErrorAddr: Pointer);
Назначив этим обработчикам наши процедуры обработки, мы получим контроль над потоком исключений и вызовов Assert.
Использование компонента (назовем его TglExceptionHandler) можно проиллюстрировать несколькими примерами:
Пример 1 Вызов Assert будет обработан и сохранен в протокол,
т.к. TglExceptionHandler перехватывает вызовы Assert:
{$ASSERTIONS ON}
procedure LoadSettings(FileStream: TFileStream);
begin
assert(Assigned(FileStream), 'Потоковый объект должен быть создан ранее');
end;
Пример 2 Вызов Assert будет обработан и сохранен в протокол с текстом исключения и GUID:
try
x := StrToInt(sSomeStringParameter);
except
on E: Exception do Assert(Assigned(E), E.Message +
'{1CC90D41-B651-11D4-AAE3-000000000000}');
end;
Пример 3 Возобновление исключения напрямую через компонент.
Исключение будет обработано и сохранено в протокол, пользователь увидит понятное сообщение об ошибке:
eh: TglExceptionHandler;
...
try
ConvertDataToXML(); // некий вызов
except
on E: Exception do eh.Raise_(E, 'Ошибка вызова конвертера XML',
'{1CC90D41-B651-11D4-AAE3-000000000000}');
end;
end;
Второй вариант рекомендуется использовать для всех (или почти всех) процедур и обработчиков. В этом случае пользователь программы получит кроме малопонятного ему сообщения об ошибке еще и код, по которому программист сможет быстро найти источник ошибки.
Пример использования:
... some code ...
EH: TglExceptionHandler;
... some code ...
try
Database.Connected := true; //...критический участок кода
except
on E:Exception do EH.Raise_(E, 'Не удается соединиться с сервером' + Database.DatabaseName,
'{013D4094-D745-11D4-BBFB-0080C86E0E20}')
end;
... some code ...
procedure YForm1.sbOkButton_Click(Sender: TObject);
try
... some code ...
Edit.Text := spSomeStoredProc.FlieldByName('поля с этим именем может и не быть!').AsString;
... some code ...
except
on E:Exception do EH.Raise_(E, '{013D4094-D745-11D4-BBFB-0080C86E0E67}')
end;
1.10 Тема: Формирование и вывод отчетов
1.10.1 Пр16 Создание и использование составляющих отчета
Цель: научиться создавать и использовать составляющие отчета.
Способы создания отчета
В Microsoft Access можно создавать отчеты различными способами:
1. Конструктор
2. Мастер отчетов
3. Автоотчет: в столбец
4. Автоотчет: ленточный
5. Мастер диаграмм
6. Почтовые наклейки
Мастер позволяет создавать отчеты с группировкой записей и представляет собой простейший способ создания отчетов. Он помещает выбранные поля в отчет и предлагает шесть стилей его оформления. После завершения работы Мастера полученный отчет можно доработать в режиме Конструктора. Воспользовавшись функцией Автоотчет, можно быстро создавать отчеты, а затем вносить в них некоторые изменения.
Для создания Автоотчета необходимо выполнить следующие действия:
1. В окне базы данных щелкнуть на вкладке Отчеты и затем щелкнуть на кнопке Создать. Появится диалоговое окно Новый отчет.
2. Выделить в списке пункт Автоотчет: в столбец или Автоотчет: ленточный.
3. В поле источника данных щелкнуть на стрелке и выбрать в качестве источника данных таблицу или запрос.
4. Щелкнуть на кнопке ОК.
5. Мастер автоотчета создает автоотчет в столбец или ленточный (по выбору пользователя), и открывает его в режиме Предварительного просмотра, который позволяет увидеть, как будет выглядеть отчет в распечатанном виде.
6. В меню Файл щелкнуть на команде Сохранить. В окне Сохранение в поле Имя отчета указать название отчета и щелкнуть на кнопке ОК.
Изменение масштаба отображения отчета
Для изменения масштаба отображения пользуются указателем — лупой. Чтобы увидеть всю страницу целиком, необходимо щелкнуть в любом месте отчета. На экране отобразится страница отчета в уменьшенном масштабе.
Снова щелкнуть на отчете, чтобы вернуться к увеличенному масштабу отображения. В увеличенном режиме представления отчета, точка, на которой вы щелкнули, окажется в центре экрана. Для пролистывания страниц отчета пользуются кнопками перехода внизу окна.
Печать отчета
Для печати отчета необходимо выполнить следующее:
1. В меню Файл щелкнуть на команде Печать.
2. В области Печатать щелкнуть на варианте Страницы.
3. Чтобы напечатать только первую страницу отчета, введите 1 в поле «с» и 1 в поле «по».
4. Щелкнуть на кнопке ОК.
Прежде чем печатать отчет, целесообразно просмотреть его в режиме Предварительного просмотра, для перехода к которому в меню Вид нужно выбрать Предварительный просмотр.
Если при печати в конце отчета появляется пустая страница, убедитесь, что параметр Высота для примечаний отчета имеет значение 0. Если при печати пусты промежуточные страницы отчета, убедитесь, что сумма значений ширины формы или отчета и ширины левого и правого полей не превышает ширину листа бумаги, указанную в диалоговом окне Параметры страницы (меню Файл).
При разработке макетов отчета руководствуйтесь следующей формулой: ширина отчета + левое поле + правое поле <= ширина бумаги.
Для того чтобы подогнать размер отчета, необходимо использовать следующие приемы:
1. изменить значение ширины отчета;
2. уменьшить ширину полей или изменить ориентацию страницы.
