- •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.4 Тема: Компоненты доступа к данным. Запросы на выборку данных
1.4.1 Пр6 Организация запросов на выборку данных
Цель: научиться создавать запросы на выборку данных.
С помощью запроса на выборку можно получить только нужные данные и отобразить их в режиме таблицы. Например, таблица "Товары" вверху приведенного ниже рисунка содержит несколько столбцов, но с помощью запроса на выборку можно получить только нужные столбцы, не загромождая окно.
Также можно добавить условия отбора для фильтрации возвращенных строк. Например, можно найти только те товары, которые стоят больше 10 рублей.
Создание запроса на выборку в базе данных для настольных систем
Предположим, что в базе данных с таблицей "Товары" нужно просмотреть только названия товаров и их цены. Для этого можно создать запрос на выборку с помощью мастера запросов. На вкладке Создание нажмите кнопку Мастер запросов и следуйте инструкциям мастера для создания и выполнения запроса.
Однако если требуется добавить в запрос условия отбора, нужно использовать конструктор запросов.
Откройте вкладку Создание и выберите пункттКонструктор запросов.
В диалоговом окне Добавление таблицы дважды щелкните таблицу Товары и нажмите кнопку Закрыть.
Дважды щелкните поля Наименование товара и Цена по прейскуранту, чтобы добавить их на бланк запроса.
В строке условий отбора под полем Цена по прейскуранту добавьте условия отбора. Например, введите >=10, чтобы отобразить список товаров стоимостью от 10 рублей и выше.
Чтобы увидеть результаты запроса, на вкладке Конструктор нажмите кнопку Выполнить.
Создание запроса на выборку в приложении Access
В веб-приложении Access создать такой же запрос на выборку можно похожим образом. Нужно только выполнить немного дополнительной работы, чтобы отобразить результаты запроса в браузере.
Выберите пункт Главная > Дополнительно > Запрос.
В диалоговом окне Добавление таблицы дважды щелкните таблицу Товары и нажмите кнопку Закрыть.
В окне Товары дважды щелкните поля Наименование товара и Цена по прейскуранту, чтобы добавить их на бланк.
Щелкните вкладку запроса правой кнопкой мыши, выберите команду тСохранить и присвойте запросу имя.
Чтобы увидеть результаты запроса, щелкните правой кнопкой мыши вкладку запроса и выберите пункт Режим таблицы.
Чтобы сделать результаты запроса доступными в браузере, нужно добавить представление запроса в исходную таблицу («Товары»).
Выберите таблицу Товары.
Щелкните значок «плюс», введите имя представления и выберите в раскрывающемся списке Тип представления пункт Таблица.
В раскрывающемся списке Источник записей выберите запрос, который нужно отобразить, а затем – команду Добавить новое представление.
1.4.2 Пр7 Использование методов для навигации по наборам данных
Цель: научиться использовать методы для навигации по наборам данных и комплексно применять знания, умения и навыки.
Таблица 2 – Описание методов
Метод |
Название |
First |
Устанавливает курсор на первую запись |
Last |
Устанавливает курсор на последнюю запись |
Next |
Перемещает курсор к следующей записи |
Prior |
Перемещает курсор е предыдущей записи |
MoveBy (Distance:Integer) |
Перемещает курсор на Distance записей вверх или вниз относительно текущей записи |
FindFirst |
Пытается установить курсор на первую запись НД и возвращает True в случае успеха |
FindLast |
Пытается установить курсор на последнюю запись НД и возвращает True в случае успеха |
FindNext |
Пытается установить курсор на следующую запись НД и возвращает True в случае успеха |
FindPrior |
Пытается установить курсор на предыдущую запись НД и возвращает True в случае успеха |
При программном доступе, прежде всего, нужно убедиться в том, что НД содержит записи. Для этого нужно вызвать метод IsEmpty, который возвращает False, если в НД есть хотя бы одна запись. После использования или редактирования текущей записи переход к следующей записи реализуется методами FindNext или Next. Таким образом, для последовательного доступа ко всем записям НД используются такого рода операторы:
if not Table1.IsEmpty then
begin
Table1.First;
repeat
{Какие либо действия над очередной записью}
until not Table1.FindNext;
end;
Из приведенного выше участка кода видно, что после проведения каких-либо действий над записью, цикл пытается поместить курсор на следующую запись НД. Если не удается установить курсор на следующую запись (not FindNext), то происходит выход из цикла.
Приведем еще один фрагмент кода, решающего эту задачу.
if not Table1.IsEmpty then
begin
Table1.First;
while not Table1.EOF do
begin
{Какие либо действия над очередной записью}
Table1.Next;
end;
end;
Здесь действия над записями происходят, пока курсор не сместился за последнюю запись. Свойство EOF содержитTrue, если курсор сместился за последнюю запись.
Если НД разрешает вызов записи по ее номеру (его свойство IsSequenced должно содержать True), можно использовать цикл for.
for i:=1 to Table1.RecordCount do
begin
Table1.RecNo:=i;
{Действия}
end;
Свойство RecNo определяет номер текущей записи, RecordCount - содержит количество записей в текущей НД.
1.5 Тема: Запросы на изменение данных в БД
1.5.1 ПР8 Организация запросов на добавление, редактирование и удаление данных
Цель: формирование практических умений и навыков составления запросов на добавление, редактирование и удаление данных.
Добавление записи
Чтобы добавить запись, выполните одно из следующих действий:
Если вы работаете с формой, откройте соответствующую форму в режиме формы.
Если вы работаете со страницей доступа к данным, откройте соответствующую страницу в режиме страницы. Если на вашем компьютере приложение Access не установлено, откройте эту страницу в веб-обозревателе.
Если вы работаете с таблицей, откройте соответствующую таблицу в режиме таблицы.
При работе в режиме таблицы или в режиме формы нажмите кнопку Новая запись на навигационной панели инструментов. Чтобы добавить запись в подчиненной форме, нажмите кнопку Новая запись на навигационной панели инструментов подчиненной формы. Если у подчиненной формы нет навигационной панели инструментов или эта кнопка недоступна, добавить запись к подчиненной форме нельзя. При работе со страницей доступа к данным нажмите кнопку Новая запись на панели перехода по записям.
ПРИМЕЧАНИЕ. Если кнопка Новая запись на странице недоступна, это означает, что у вас нет разрешения на добавление новых записей. Обратитесь к владельцу базы данных. Если кнопки Новая запись на странице доступа к данным не видно, это означает, что страница предназначена только для чтения или разработчик изменил внешний вид этой кнопки. Посмотрите инструкции по использованию этой страницы или обратитесь к разработчику страницы.
Введите данные, а затем нажмите клавишу TAB, чтобы перейти к следующему полю.
Советы
Чтобы начать новую строку в поле, которое поддерживает многострочный текст, нажмите сочетание клавиш CTRL+ВВОД.
Чтобы предотвратить автоматическое завершение ввода при наборе значения поля со списком, установите для свойства Автоподстановка этого элемента управления значение Нет.
При попытке выйти из поля после изменения данных в приложении Access проверяется, являются ли введенные данные допустимыми для этого поля. Если значение не является допустимым, появляется предупреждающее сообщение.
Дополнительные сведения см. в разделе Разрешение вопросов, связанных с редактированием данных в поле.
Чтобы выйти из поля после появления предупреждающего сообщения, следует либо заменить введенные данные допустимым значением, либо отменить внесенные изменения, нажав клавишу ESC. Этот процесс называется проверкой на уровне полей.
Когда ввод данных в каждое из полей записи будет закончен, нажмите кнопку Новая запись, чтобы добавить еще одну запись, или перейдите в другую запись.
ПРИМЕЧАНИЕ. Нельзя вставить новую запись между двумя существующими записями. Однако порядок следования записей можно изменить путем сортировки.
При переходе к другой записи в приложении Access сначала проверяется, можно ли сохранить всю запись (проверка на уровне записи), после чего происходит сохранение изменений. Если запись нельзя сохранить, необходимо либо внести необходимые исправления, либо отменить изменения.
