- •1. Основные принципы создания баз данных
- •Требования, которым должна удовлетворять организация базы данных
- •Основы построения банков данных
- •Организация баз данных и их модели
- •Проблемы проектирования бд
- •Принцип работ бд в Delphi
- •Инструментальные средства баз данных Borland
- •Архитектуры баз данных
- •2.1 Операции с таблицей бд
- •2. Навигационный способ доступа к базам данных
- •2.2 Сортировка набора данных
- •2.3 Перемещение по набору данных
- •2.4 Фильтрация записей
- •2.5 Поиск записей
- •2.6 Модификация набора данных
- •3. Описание приложения
- •3.1 Файл проекта
- •3.2 Форма заставки
- •3.3 Основная форма
- •3.4 Форма вставки новых записей
- •3.5 Форма добавления разделов
- •3.6 Форма просмотра базы данных
- •3.7 Дополнительный модуль
2.2 Сортировка набора данных
база данных delphi фильтрация
Порядок расположения записей в наборе данных может быть неопределенным. По умолчанию записи не отсортированы или сортируются, например, для таблиц Paradox по ключевым полям, а для таблиц dBase в порядке их поступления в файл таблицы.
Для удобной работы с набором данных его записи можно отсортировать. Сортировка — это упорядочение записей по определенному полю в порядке возрастания или убывания значений, содержащихся в этом поле. Сортировать можно по нескольким полям. Например, при сортировке по двум полям записи сначала упорядочиваются в соответствии со значениями первого поля, а группы записей, имеющих одинаковое значение первого поля, сортируются по второму полю.
Сортировка наборов данных Table и Query выполняется различными способами. Рассмотрим сортировку набора данных Table. Для компонента Query вопросы сортировки рассмотрены в пункте «Реляционный способ доступа к базе данных».
Сортировка наборов данных Table выполняется автоматически по текущему индексу. При смене индекса происходит автоматическое переупорядочение записей. Таким образом, сортировка возможна по полям, для которых создан индекс. Для сортировки по нескольким полям нужно создать индекс, включающий эти поля.
Направление сортировки определяет признак ixDescending текущего индекса. По умолчанию он выключен, поэтому упорядочение происходит в порядке возрастания значений. Если для индекса установлен признак ixDescending, то сортировка выполняется в порядке убывания значений.
Задать индекс, по которому будут сортироваться записи, можно с помощью установки значений свойств IndexName или IndexFieldNames. В качестве значения свойства IndexName указывается имя индекса, которое определяется при создании таблицы. При использовании свойства IndexFieldNames указывается имена полей, образующих соответствующий индекс.
2.3 Перемещение по набору данных
Перемещение по набору данных заключается в управлении указателем текущей записи (курсором). Этот указатель определяет запись, с которой будут выполняться такие операции, как редактирование или удаление.
Перемещение по записям. Перед перемещением указателя текущей записи набор данных автоматически переводится в режим просмотра. Если текущая запись находилась в режиме редактирования или вставки, то перед перемещением указателя сделанные в записи изменения вступают в силу. Для этого автоматически вызывается метод CheckBrowseMode набора данных.
Для перемещения указателя текущей записи в наборе данных используются:
-Процедура First — первая запись
-Процедура Next — следующая запись (при вызове метода Next для последней записи указатель не перемещается)
-Процедура Last — последняя запись
-Процедура Prior — предыдущая запись (при вызове метода Prior для первой записи указатель не перемещается)
-Функция MoveBy (Distance: Integer): Integer — перемещает указатель на число записей, определяемое параметром Distance. Если его значение больше нуля, то происходит перемещение вперед, если меньше нуля — назад. При нулевом значении параметра указатель не перемещается. В качестве результата возвращается число записей, на которое переместился указатель.
При перемещении указателя текущей записи учитываются ограничения и фильтр, определенные для набора данных. Таким образом, перемещение выполняется по записям набора данных, которые он содержит в текущий момент времени. Число записей определяется свойством RecordCount.
Значения указателя текущей записи изменяют также методы, связанные с поиском записей, например, метод FindFirst.
Для контроля за положением указателя текущей записи можно использовать свойство RecNo, которое содержит номер записи, начиная от начала набора данных (для локальных таблиц dBase и Paradox).
Для таблиц Paradox свойство RecNo также можно использовать с целью перехода к записи с известным номером, такой переход выполняется установкой свойству RecNo значения, равного номеру нужной записи.
Для определения начала и конца набора данных при перемещении указателя текущей записи можно использовать свойства BOF и EOF типа Воо1eаn. Эти свойства доступны для чтения при выполнении приложения. Свойство BOF показывает, находится ли указатель на первой записи набора данных. Этому свойству устанавливается значение True при размещении указателя на первой записи, например, сразу после вызова метода First. Свойство EOF показывает, находится ли указатель на последней записи набора данных. Этому свойству устанавливается значение Ture, когда указатель находится на последней записи.
