- •Практический раздел содержание
- •Лабораторная работа №1
- •Основные понятия диаграмм классов uml
- •Классы, атрибуты, операции
- •Категории связей. Связь-зависимость
- •Связи-обобщения и механизм наследования классов в uml
- •Связи-ассоциации: роли, кратность, агрегация
- •Получение схемы реляционной базы данных из диаграммы классов uml
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •3Апрос 6-2-1
- •3Апрос 6-2-2
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Создание макроса
- •Сведения о построителе макросов
- •Создание изолированного макроса
- •Создание группы макросов
- •Создание внедренного макроса
- •Изменение макроса
- •Использование условий для контроля за действиями макроса
- •Примеры условных выражений в макросах
- •Лабораторная работа №9
- •Описание
- •Порядок обработки элементов оператора select:
- •Конструкция where
- •Конструкция group by
- •Конструкция having
- •Конструкция order by
- •Seller (Продавцы)
- •Sale (Продажи)
- •Supplier (Поставщики)
- •Goods (Товары)
- •Model (Модели)
- •Custom (Заказ)
- •Простые запросы
- •Агрегатные функции
- •Лабораторная работа №10
- •Многотабличные запросы
- •Примеры многотабличных запросов
- •Подзапросы и многотабличные запросы
- •Лабораторная работа №11
- •Операторы манипулирования данными
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Примеры
- •Синтаксис
- •Примеры
- •Лабораторная работа №14
- •Лабораторная работа №15
- •Лабораторная работа №16
- •Лабораторная работа №17
- •Лабораторная работа №18
- •Лабораторная работа №19
- •Работа с данными
- •Состояния и режимы набора данных
- •Поля и класс tField
- •Типы полей и типы данных
- •Сортировка
- •Навигация
- •Фильтрация
- •Редактирование
- •Добавление и удаление
- •Лабораторная работа №20
- •Лабораторная работа №21
- •Лабораторная работа №22
- •Лабораторная работа №23
- •Компонент dbCtrlGrid
- •Лабораторная работа №24
- •Импорт информации из Delphi в Word
- •1. Как определить установлен ли Excel
- •2. Как определить запущен ли Excel
- •3. Как вывести данные в Excel
- •Лабораторная работа №25
- •Поиск и фильтрация данных в Delphi
- •Общие положения
- •Поиск данных
- •Лабораторная работа №26
- •Лабораторная работа №27
- •Отчеты в Delphi
- •Лабораторная работа №28
- •Лабораторная работа №29
- •Лабораторная работа №30
- •Лабораторная работа №31
- •Лабораторная работа №32
- •Стандартные функции php для работы с MySql
- •Пример простейшей поисковой системы на php
- •Сортировка таблиц
- •Лабораторная работа №33
- •Работа с соединениями
- •Постоянные соединения с базами данных
- •Лабораторная работа №34
- •Создание бд и таблиц
- •Создание бд и таблиц с помощью php
- •Создание бд и таблиц с использованием phpMyAdmin
- •Лабораторная работа №35
- •Лабораторная работа №36
- •Применение информации о структуре таблицы
- •Лабораторная работа №37
- •Лабораторная работа №39
- •Роль сервера приложений: Настройка сервера приложений
- •Предварительная подготовка
- •Настройка сервера приложений
- •Параметры сервера приложений
- •Сводка выбранных параметров
- •Завершение работы мастера настройки сервера
- •Удаление роли сервера приложений
- •Дальнейшие действия: выполнение дополнительных задач
- •Подготовка данных для сервера приложений
- •Создание сервера приложений
- •Лабораторная работа №40
- •Создание локального клиентского приложения (на том же пк, что и сервер)
- •Удаленный клиент с использованием olEnterprise
- •Об удаленном клиенте с использованием dcom
- •Удаленный клиент с использованием ActiveForm
Добавление и удаление
Подобно редактированию, добавление и удаление записей возможно только для модифицируемых наборов данных. В частности, для добавления новой записи следует выполнить следующую последовательность действий:
перевести набор данных в режим вставки записи;
определить значения полей новой записи;
подтвердить сделанные изменения или отказаться от них.
Очевидно, что последовательность действий практически полностью аналогично тому, что мы уже видели при редактировании, с той лишь разницей, что вместо перехода к режиму редактирования используется переход в режим вставки. Для этих целей предусмотрено 4 метода - Insert, Append, InsertRecord и AppendRecord.
Методы Insert и Append переводят набор данных в режим вставки, и добавляют к нему новую пустую запись. Различие между этими методами состоит лишь в том, что если метод Append всегда добавляет запись в конец набора данных, то метод Insert - в позицию, на которой находится курсор ввода. Поэтому перед обращением к методу Insert обычно предварительно перемещают указатель в требуемую позицию набора данных. Например, для вставки нового ряда в самое начало набора, можно использовать следующий код:
Table1.First;
Table1.Insert;
После того, как набор данных будет переведен в режим добавления записи, остается произвести действия по определению значений полей, подобно тому, как это делается при редактировании. Фактически, это и есть редактирование, поскольку мы уже имеем готовый ряд полей, которые надо просто заполнить нужными значениями:
Table1.FieldByName('BILL_CUST').AsInteger:='5';
Table1.FieldByName('BILL_SUMM').AsCurrency:='155.99';
Table1.Post;
Если в программе были определены переменные, представляющие собой поля, то, разумеется, будет проще именно их и задействовать:
Table1BILL_CUST.AsInteger:='5';
Table1BILL_SUMM.AsCurrency:='155.99';
Более того, некоторые поля могут являться заполняемыми автоматически, например, поле BILL_ID в таблице счетов имеет автоинкрементный тип и получит нужное значение путем встроенных механизмов СУБД. Правда, произойдет это не сразу, а лишь при выполнении последней стадии редактирования - подтверждения, что, как и при обычной правке делается методом Post. Если же отказаться от внесенной правки (метод Cancel), то не будут сохранены не только введенные значения, но и сам добавленный ряд тоже.
В ряде случаев, особенно когда требуется изменять большинство полей записи, удобно пользоваться специальным методом - SetFields. С его помощью можно задать значения для произвольного количества полей записи одновременно. Так, предыдущий пример с изменением 2 полей можно написать так:
Table1.SetFields([Nil, 5, 155.99]);
Здесь в качестве значения для первого поля указано значение Nil, поскольку подразумевается, что это поле автоинкрементного типа и значение для него будет назначено автоматически во время подтверждения. Отметим так же, что этого самого подтверждения (использования метода Post) в данном случае явно указывать не надо, поскольку метод SetFields вызывает его самостоятельно. Метод SetFields можно использовать не только при добавлении, но и при редактировании записей. В таком случае для тех полей, значения которых менять не требуются, так же указывают Nil.
Наконец, наиболее комплексным подходом к вставке записей является использование методов InsertRecord и AppendRecord. Метод InsertRecord объединяет в себе методы Insert и SetFields. Соответственно, чтобы добавить новую запись с его помощью, достаточно написать:
Table1.InsertRecord([Nil, 5, 155.99]);
Аналогично, метод AppendRecord, объединяет в себе методы Append и SetFields, т.е. добавляет и заполняет значениями запись в конце набора данных.
Что касается удаления записей, то для этих целей используется метод Delete. Он удаляет текущую запись из набора данных и перемещает указатель текущей записи на следующую запись. При этом если запись в момент вызова этого метода находилась в режиме вставки, то вызов Delete, по сути, будет аналогичен обращению к методу Cancel. Если же набор данных не содержит ни одной записи, то вызов метода Delete инициирует исключение.
Тот факт, что при удалении записи указатель перемещается автоматически, делает ненужным перемещение указателя методами типа Next. Например, чтобы удалить все записи из набора достаточно написать такой цикл:
while not Table1.Eof do Table1.Delete;
Поскольку на практике довольно редко приходится удалять все данные из таблицы БД, то удаление данных чаще всего совмещают с фильтрацией, т.е. сначала отбирают ставшие ненужными данные при помощи фильтра, а затем удаляют их, после чего отключают фильтрацию.
СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Изучить теоретические сведения.
Создть новый проект.
Поместить на форму основные компоненты для подключения БД.
Настроить подключение к БД.
Испробовать все способы работы с наборами данных.
Проверить работу всего проекта.
Продемонстрировать преподавателю работу разработанного образца проекта.
Получить от преподавателя индивидуальное задание и создать проект (по аналогии) для выполнения индивидуального задания.
Подготовиться к защите лабораторной работы, которая включает в себя демонстрацию индивидуального варианта, защиту по контрольным вопросам теоретической части работы.
Вопросы выходного контроля:
Расскажите о главных компонентах для подключения БД.
Расскажите, для чего используют компонент ADOConnection.
Опишите свойства компонента ADOConnection.
Расскажите, для чего используют компонент DateSource.
Опишите свойства компонента DateSource.
