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

1.6 Тема: Хранимые процедуры, триггеры и генераторы. Обеспечение достоверности, целостности и непротиворечивости данных. Каскадные воздействия

1.6.1 Пр10 Методы для проверки правильности введенного в поле значения в приложениях бд

Цель: научиться развивать и совершенствовать полученные знания при проверке правильности введенного значения в приложениях БД.

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

Условия на значения могут быть заданы для всех типов данных за исключением типов «Счетчик», «Объект OLE» и «Вложение» и числовых полей со значением «Код репликации».

Проверка данных в поле

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

  2. В столбце Имя поля выберите поле, которое требуется изменить.

  3. В нижней части конструктора таблиц на вкладке Общие выделите ячейку свойства Условие на значение (Validation Rule) и введите условие на значение.

-или-

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

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

  1. Выделите ячейку свойства Сообщение об ошибке (Validation Text) и введите сообщение об ошибке.

Вводимое сообщение должно соответствовать заданному условию на значение. Создавайте короткие сообщения, объясняющие пользователю, в чем он ошибся. Для приведенного на предыдущем шаге примера можно использовать в качестве сообщения об ошибке текст: Вводите только положительные значения.

  1. Сохраните внесенные изменения.

1.7 Тема: Сортировка, поиск и фильтрация данных в бд и в выборках

1.7.1 Пр11 Организация поиска записей с использованием метода Locate

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

Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая запись найдена, делает ее текущей. В этом случае в качестве результата воз­вращается значение True. Если запись не найдена, возвращается значение False и курсор не меняет своего положения.

  1. Откройте проект Delphi, созданный при выполнении практической работы «Создание объектов полей».

  2. Разместите на форме компонент SpinEdit (вкладка Samples)

  3. Компонент DBGrid свяжите с источником данных.

  1. Для компонента SpinEdit напишите обработчик события onChange: при изменении значения SpinEdit курсор должен быть установлен на запись с соответствующим номером накладной. Используйте метод Locate

if not DM.Nakls.Locate('Naklid',SpinEdit1.Value,[]) then

ShowMessage('Нет накладных с указанным номером');

DBGrid1.SetFocus

  1. Проверьте работу программы.

  2. Сохраните проект.

1.7.2 Пр12 Организация поиска записей с использованием метода Lookup

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

Метод Lookup находит запись, удовлетворяющую условию поиска, но не делает ее текущей, а возвращает значения некоторых ее полей. Независимо от результата поиска записи указатель текущей записи в НД не изменяется. В отличие от метода Locate, метод Lookup осуществляет поиск только на точное соответствие крите­рию поиска значения поля поиска записи.

  1. Создайте новый проект в Delphi.

  2. Создайте модуль данных, куда поместите компоненты для связи с БД IB_BIBL.gdb, а также компоненты – наборы данных и компоненты – источники данных для таблиц Nakls и Firms.

  3. С помощью редактора полей для компонента Nakls создайте подстановочное поле Firm для поиска наименования фирмы по ее номеру.

  4. Разместите на форме один компонент SpinEdit, четыре компонента StaticText, четыре текстовых метки, одну кнопку, как показано на рисунке.

  1. Для кнопки «Искать» напишите обработчик события onClick, который осуществляет поиск в наборе данных с помощью метода LookUp и присваивает компонентам StaticText соответствующие значения полей набора данных. Если накладной с указанным номером не существует, выдайте соответствующее сообщение.

Пример процедуры:

procedure TfmNakl.Button1Click(Sender: TObject);

var

LookupResult: Variant;

begin

LookupResult := DM.Nakls.Lookup('NaklID',seNaklID.Value,

'NDate;Firm;NSum;NPayedSum');

if VarType(LookupResult)=varNull then

ShowMessage('Нет накладной с номером '+IntToStr(seNaklID.Value))

else if VarType(LookupResult)=varEmpty then

ShowMessage('Поиск не проведен')

else if VarIsArray(LookupResult) then

begin

stDate.Caption := LookupResult[0];

stName.Caption := LookupResult[1];

stSum.Caption := LookupResult[2];

stPayed.Caption := LookupResult[3];

end else

stDate.Caption := LookupResult

end;

  1. Проверьте работу программы