Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка лр ПрИС.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
1.08 Mб
Скачать

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

Рассмотрим обработчик события нажатия кнопки «Добавить запись» (см. рисунок 4.1). Из компонента TEdit считывается название поля t1_name и производится добавление в таблицу New_table1 новой записи с указанным значением t1_name (Первичный ключ устанавливается триггером).

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

SQLQuery1.Active:=false;

Свойство SQL очищается методом Clear класса TStrings, и туда вносится SQL-запрос на вставку методом Add класса TStrings. Запрос выполняется методом ExecSQL компонента TSQLQuery.

SQLQuery1.SQL.Clear;

SQLQuery1.SQL.Add('insert into new_table1 values (1, '''+Edit1.Text+''')');

SQLQuery1.ExecSQL;

После выполнения запроса необходимо сразу же сохранить изменения в базе данных методом Commit компонента TSQLTransaction.

SQLTransaction1.Commit;

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

Рисунок 4.5 – Результат добавления новой записи

С помощью среды IBExpert можно подтвердить изменения в базе, выполнив в окне работы с таблицей команду Commit Transaction.

Рисунок 4.6 – Отображение изменений в базе посредством среды IBExpert

4.3.3Удаление записей в базе данных с помощью приложения

Усложним приложение, добавив в него функцию удаления. Форма примет следующий вид.

Рисунок 4.7 – Добавление функции удаления записей в приложение

Рассмотрим обработчик события нажатия на кнопку «Удалить запись». Выполнение запроса на удаление аналогично выполнению запроса на вставку. Удаляется та запись, значение которой совпадает с выделенным пунктом списка, то есть ListBox1.Items[ListBox1.ItemIndex]. Соответственно, происходит проверка, выделен ли элемент в списке вообще.

if ListBox1.ItemIndex<>-1 then

begin

SQLQuery1.Active:=false;

SQLQuery1.SQL.Clear;

SQLQuery1.SQL.Add('delete from new_table1 where "t1_name"='''+ListBox1.Items[ListBox1.ItemIndex]+'''');

SQLQuery1.ExecSQL;

SQLTransaction1.Commit;

end;

4.3.4Редактирование данных в базе с помощью приложения

Усложним приложение, добавив в него функцию редактирования данных. Форма примет следующий вид:

Рисунок 4.8 - Добавление функции редактирования данных в приложение

Рассмотрим обработчик события нажатия на кнопку «Редактировать». Выполнение запроса на редактирование аналогично выполнению запроса на удаление. Редактируется значение поля t1_name, совпадающее с выделенным пунктом списка, то есть ListBox1.Items[ListBox1.ItemIndex]. Новое значение поля берется из строки ввода Edit2.

if ListBox1.ItemIndex<>-1 then

begin

SQLQuery1.Active:=false;

SQLQuery1.SQL.Clear;

SQLQuery1.SQL.Add('update new_table1 set "t1_name"='''+Edit2.Text+''' where "t1_name" ='''+ ListBox1.Items[ListBox1.ItemIndex]+'''');

SQLQuery1.ExecSQL;

SQLTransaction1.Commit;

end;

5Формулировка задачи

5.1Задание на лабораторную работу

Разработать приложение для существующей базы данных, полностью автоматизирующее работу с ней. В приложении должны быть визуализированы связи «один-ко-многим». Реализовать интерфейс посредством динамического формирования SQL-запросов без использования компонентов панели Data Controls.

5.2Контрольные вопросы

  1. Схема взаимодействия приложения Lazarus с различными базами данных.

  2. Компоненты работы с базами данных.

  3. Особенности работы в программе IBExpert.

  4. Общий принцип работы компонента TSQLQuery.

  5. Общий принцип работы компонента TSQLTransaction.

  6. Общие особенности формирования интерфейса программы с помощью содержимого базы данных.

Список рекомендуемой литературы

1. База знаний по Lazarus. – [Электронный ресурс] // Lazarus. – [Режим доступа: http://wiki.freepascal.org/Main_Page/ru].

2. Алексеев, Е.Р. Free Pascal и Lazarus. Учебник по программированию [Текст] / Е.Р. Алексеев. – М.: ДМК – Пресс, 2010. – 438 с.

3. Архангельский, А.Я. Программирование в Delphi 7.[Текст] / А.Я. Ар-хангельский. - СПб.: БХВ, 2003.

4. Иванова, Г.С. Объектно-ориентированное программирование: Учеб. [Текст] / Г.С. Иванова, Т.Н. Ничушкина и др. - М.: Издательство МГТУ имени Н.Э. Баумана, 2001.

5. Малыхина, М.П. Базы данных: основы, проектирование, использование: [Текст] / М.П. Малыхина. - СПб.: BHV-Петербург (БХВ-Петербург), 2004. - 499 с.

6. Кузин, А. В. Базы данных: учеб. пособие для вузов [Текст] / А.В. Кузин; С.В. Левонисова. - М.: Академия (Academia), 2005. - 314 с.: ил.