Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_лекции_Саладаев.doc
Скачиваний:
55
Добавлен:
03.05.2015
Размер:
15.75 Mб
Скачать

Специфика:

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

Один из приемов- сначала сделать запрос на выборку и предоставить возможность просмотра результата, затем сделать такой же запрос, но преобразовать его в запрос на обновление (или другое изменение). Для преобразования запроса используется команда Запрос Обновление. При этом изменится заголовок запроса (слово «выборка» заменится словом «обновление») и в бланке запроса появится строка «обновление», в которой вписывается значение обновляемого поля.

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

Для запуска запроса нажать кнопку. После запуска можно убедиться в правильности, вернув запрос в положение «Выборка» (очевидно, что если обновлялись поля отбора, то там нужно проставлять уже новое значение).

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

Нажать или кнопку «Тип запроса» или Запрос / Создать таблицу в меню, появится диалоговое окно для ввода имени таблицы и указания в какой БД делать таблицу.

Стр. 58.

Как и в других случаях появится информационное сообщение о количестве записей.

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

Типичное применение запроса на создание новой таблицы- создание резервных копий (помнить о ключе).

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

Запросы на добавление.

Условия применения:

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

  2. При добавлении в другую БД необходимо знать ее местоположение и имя.

  3. Если добавляются записи с полем Счетчик (ключевое поле), добавлять само поле Счетчик не следует (если в таблице, куда добавляем, уже есть это поле см. П.1).

Все остальное аналогично предыдущим.

Запросы на удаление.

Особенность этих запросов в том, что если затронуты связи, для которых включена «Целостность данных» и «Каскадное удаление», то автоматически оно пройдет по всем связям.

Запрос на удаление удаляет данные безвозвратно.

Проблемы, возникающие при работе с запросами на изменение.

  • Могут появиться сообщения о том, что утерянонесколько записей из-за возможности разрушения ключа, или записи могут бытьзаблокированына время выполнения запроса.

  • Если тип данных добавляемых записей не подходит, то записи создаются (ключи), но пустые.

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

  • Не позволяется удаление содержимого поля со стороны «один» при связи «один ко многим» до удаления всех записей со стороны «многие».

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

При добавлении или изменении текстовых полей с превышением длины произойдет усечение (без выдачи каких-либо сообщений).

Сохранение запросов.

При сохранении запроса Accessможет переупорядочить или уничтожить некоторые поля, руководствуясь следующими правилами:

  • Если для поля не включена опция «Вывод на экран», но указаны условия отбора, оно расположится справа.

  • Если для поля не включена опция «Вывод на экран» и не указаны условия отбора или сортировки, оно будет удалено из запроса.

Иногда нужно при отображении запроса переименовать поле. При этом нужно набрать новое имя перед имеющимся и разделить их двоеточием. Например,