Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
03 (1).docx
Скачиваний:
15
Добавлен:
10.04.2015
Размер:
1.93 Mб
Скачать

Контроль данных в таблицах

Свойства полей таблицы можно использовать для контроля правильности ввода и изменения данных. Чтобы определить условие контроля данных (ограничение целостности), следует открыть таблицу в режиме Конструктора; выбрать поле, которое надо проверять; в нижней части окна выбрать свойство, которое требуется определить и ввести или выбрать из списка условие контроля.

Когда условия контроля для всех полей таблицы определены, сохраните таблицу. Проверка условий контроля данных происходит в момент, когда пользователь переходит к вводу данных в следующее поле. При нарушении каких-либо ограничений целостности выводится сообщение о том, что сделана попытка ввести недопустимые данные, и СУБД не позволяет пользователю перейти к другому полю, пока не исправлена ошибка. Возможные виды контроля значений текущего поля зависят от типа поля (таблица 2).

Таблица 2 – ограничения целостности для поля таблицы

Вид контроля данных

Описание свойства поля

Размер поля.

Запрещены пустые строки (“”) в новых записях

Данные в поле должны быть введены обязательно

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

Уникальность индексированного поля (для всех полей кроме memo и ole)

Проверка на соответствие логическому выражению

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

Используйте наиболее вероятные значения для большинства записей.

Рассмотрим подробнее ряд ограничений целостности.

Размер поля для числовых и денежных полей определяет диапазон допустимых значений и дисковое пространство: число может занимать в точности 1, 2, 4, 8, 12 или 16 байтов. Например, однобайтовые числовые поля могут содержать только целые числа в диапазоне от 0 до 255. Размер текстовых полей – это максимально возможное количество символов. Если хотя бы одно значение в столбце может быть длиннее 255 символов, то нужно выбрать типMemo. Для повышения быстродействия и уменьшения размера файла выбирайте наименьший из возможных размеров.

Формат поля не влияет на то, как хранится значение в БД, но определяет способ отображения значений поля. Например, для денежных полей можно выбрать вид валюты, для календарных полей можно выбрать полный, краткий и средний формат даты и времени, для числовых полей – указать количество выводимых знаков дробной части. Рекомендуется выбрать наиболее привычный для пользователя формат поля, отсекающий неиспользуемые символы. Например, для даты документа обычно выбирают краткий формат даты.

Обычные текстовые поля не имеют формата, но разрешается форматировать поля Memo: задать цвет, жирность и размер шрифта, выравнивание и отступы абзаца. Формат хранится в виде теговHTML. Укажите в свойстве «Формат текста» значение «Формат RTF». После этого можно форматировать текст в отдельном поле с помощью групп команд ленты «Шрифт» и «ФорматRTF». Обычно эти команды действуют сразу на все поля таблицы или недоступны, а дляMemo-полей с форматомRTFвозможно индивидуальное форматирование фрагментов текста в каждом поле. Например, на рисунке 11 поле «Текст письма» имеет тип «ПолеMemo», формат текста – «ФорматRTF». В режиме таблицы можно вводить и форматировать данные, почти как вWord.

Рисунок 11- форматирование Memo-полей: запись 1 форматирована, запись 2 – без форматирования

Маска ввода данныхпредставляет собой набор текстовых констант и знаков, определяющий, какие данные и каким образом можно вводить. Например, с помощью маски ввода можно потребовать, чтобы пользователи вводили даты или телефонные номера так, как принято в определенной стране. Маска состоит из трех частей, разделенных точкой с запятой: первая часть задает тип разрешенных символов (таблица 3), вторая – следует ли хранить в полях БД вспомогательные символы маски (0 – хранить, 1 – не хранить); третья часть маски определяет символ, который заменяет пробел при вводе данных. Существует специальная маска «Пароль» (Password), при использовании которой введенные символы заменяются звездочками, хотя в БД хранятся реально введенные символы.

Таблица 3 - символы маски

Символ

Описание

0

Обязательные цифры от 0 до 9, знаки + и – не разрешаются

9

Цифра или пробел

#

Цифра, пробел, + и -

L

Буква (A-Z, ввод обязателен).

?

Буква (A-Z, ввод не обязателен).

A

Буква или цифра (ввод обязателен).

a

Буква или цифра (ввод не обязателен).

&

Любой символ или пробел (ввод обязателен).

C

- « - (ввод не обязателен).

<

Перевод всех символов в нижний регистр.

>

Перевод всех символов в верхний регистр

\

Используется перед символом, который является литералом

Примеры использования маски.

  1. Обязательный ввод междугородного кода телефона, скобки и минусы применяются в качестве разделителей частей кода: маска - (000) 000-00-00, пример - (918) 204-00-02.

  2. Необязательный ввод международного кода и первого символа городского кода телефона: (999) 900-00-00, пример - (841) 233-33-33 или 33-33-33.

  3. Сочетание обязательных букв и цифр в автомобильном номере. Знак «больше» требует вводить все буквы в верхнем регистре. Маска - >L000LL-00, пример – С065МК-58.

  4. Имя или фамилия, первая буква которой автоматически вводится заглавной. Маска - >L<??????????????, пример – Николаев.

Практическое задание

  • Откройте файл «Борей 2007»;

  • Открывая таблицы БД в режиме «Конструктор», определите, какие дополнительные свойства полей помогают контролировать ввод данных. Переходя в режим «Таблица», попробуйте ввести неправильные данные. Какие сообщения выдает БД?

  • Откройте свой файл БД, опишите не менее 10 различных ограничений целостности (размер текстовых полей, формат числовых полей и дат, формат текста MEMO-поля, маску для телефонов, обязательность и наличие пустых значений, значения по умолчанию для дат, диапазон и сообщение об ошибке для числовых полей «Количество» или «Цена».

  • Проверьте, работает ли контроль данных при вводе записей в таблицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]