Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические работы по РЭУБД.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

1.4 Тема: Компоненты доступа к данным. Запросы на выборку данных

1.4.1 Пр6 Организация запросов на выборку данных

Цель: научиться создавать запросы на выборку данных.

С помощью запроса на выборку можно получить только нужные данные и отобразить их в режиме таблицы. Например, таблица "Товары" вверху приведенного ниже рисунка содержит несколько столбцов, но с помощью запроса на выборку можно получить только нужные столбцы, не загромождая окно.

Также можно добавить условия отбора для фильтрации возвращенных строк. Например, можно найти только те товары, которые стоят больше 10 рублей.

Создание запроса на выборку в базе данных для настольных систем

Предположим, что в базе данных с таблицей "Товары" нужно просмотреть только названия товаров и их цены. Для этого можно создать запрос на выборку с помощью мастера запросов. На вкладке Создание нажмите кнопку Мастер запросов и следуйте инструкциям мастера для создания и выполнения запроса.

Однако если требуется добавить в запрос условия отбора, нужно использовать конструктор запросов.

  1. Откройте вкладку Создание и выберите пункттКонструктор запросов.

  2. В диалоговом окне Добавление таблицы дважды щелкните таблицу Товары и нажмите кнопку Закрыть.

  3. Дважды щелкните поля Наименование товара и Цена по прейскуранту, чтобы добавить их на бланк запроса.

  4. В строке условий отбора под полем Цена по прейскуранту добавьте условия отбора. Например, введите >=10, чтобы отобразить список товаров стоимостью от 10 рублей и выше.

  1. Чтобы увидеть результаты запроса, на вкладке Конструктор нажмите кнопку Выполнить.

Создание запроса на выборку в приложении Access

В веб-приложении Access создать такой же запрос на выборку можно похожим образом. Нужно только выполнить немного дополнительной работы, чтобы отобразить результаты запроса в браузере.

  1. Выберите пункт Главная > Дополнительно > Запрос.

  2. В диалоговом окне Добавление таблицы дважды щелкните таблицу Товары и нажмите кнопку Закрыть.

  1. В окне Товары дважды щелкните поля Наименование товара и Цена по прейскуранту, чтобы добавить их на бланк.

  2. Щелкните вкладку запроса правой кнопкой мыши, выберите команду тСохранить и присвойте запросу имя.

  3. Чтобы увидеть результаты запроса, щелкните правой кнопкой мыши вкладку запроса и выберите пункт Режим таблицы.

Чтобы сделать результаты запроса доступными в браузере, нужно добавить представление запроса в исходную таблицу («Товары»).

  1. Выберите таблицу Товары.

  1. Щелкните значок «плюс», введите имя представления и выберите в раскрывающемся списке Тип представления пункт Таблица.

  2. В раскрывающемся списке Источник записей выберите запрос, который нужно отобразить, а затем – команду Добавить новое представление.

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 Организация запросов на добавление, редактирование и удаление данных

Цель: формирование практических умений и навыков составления запросов на добавление, редактирование и удаление данных.

Добавление записи

  1. Чтобы добавить запись, выполните одно из следующих действий:

    • Если вы работаете с формой, откройте соответствующую форму в режиме формы.

    • Если вы работаете со страницей доступа к данным, откройте соответствующую страницу в режиме страницы. Если на вашем компьютере приложение Access не установлено, откройте эту страницу в веб-обозревателе.

    • Если вы работаете с таблицей, откройте соответствующую таблицу в режиме таблицы.

  2. При работе в режиме таблицы или в режиме формы нажмите кнопку Новая запись на навигационной панели инструментов. Чтобы добавить запись в подчиненной форме, нажмите кнопку Новая запись на навигационной панели инструментов подчиненной формы. Если у подчиненной формы нет навигационной панели инструментов или эта кнопка недоступна, добавить запись к подчиненной форме нельзя. При работе со страницей доступа к данным нажмите кнопку Новая запись на панели перехода по записям.

 ПРИМЕЧАНИЕ.   Если кнопка Новая запись на странице недоступна, это означает, что у вас нет разрешения на добавление новых записей. Обратитесь к владельцу базы данных. Если кнопки Новая запись на странице доступа к данным не видно, это означает, что страница предназначена только для чтения или разработчик изменил внешний вид этой кнопки. Посмотрите инструкции по использованию этой страницы или обратитесь к разработчику страницы.

  1. Введите данные, а затем нажмите клавишу TAB, чтобы перейти к следующему полю.

Советы    

  • Чтобы начать новую строку в поле, которое поддерживает многострочный текст, нажмите сочетание клавиш CTRL+ВВОД.

  • Чтобы предотвратить автоматическое завершение ввода при наборе значения поля со списком, установите для свойства Автоподстановка этого элемента управления значение Нет.

При попытке выйти из поля после изменения данных в приложении Access проверяется, являются ли введенные данные допустимыми для этого поля. Если значение не является допустимым, появляется предупреждающее сообщение.

Дополнительные сведения см. в разделе Разрешение вопросов, связанных с редактированием данных в поле.

Чтобы выйти из поля после появления предупреждающего сообщения, следует либо заменить введенные данные допустимым значением, либо отменить внесенные изменения, нажав клавишу ESC. Этот процесс называется проверкой на уровне полей.

  1. Когда ввод данных в каждое из полей записи будет закончен, нажмите кнопку Новая запись, чтобы добавить еще одну запись, или перейдите в другую запись.

 ПРИМЕЧАНИЕ.   Нельзя вставить новую запись между двумя существующими записями. Однако порядок следования записей можно изменить путем сортировки.

При переходе к другой записи в приложении Access сначала проверяется, можно ли сохранить всю запись (проверка на уровне записи), после чего происходит сохранение изменений. Если запись нельзя сохранить, необходимо либо внести необходимые исправления, либо отменить изменения.