
- •31.Способ фильтрации набора данных с использованием свойств Filter, Filtered и FilterOptions.
- •32. Поиск информации методами SetKey (или EditKey) и GotoKey.
- •34.Поиск информации методом Locate и Lookup.
- •35. Поиск информации методами FindFirst, FindPrior, FindNext и Find.
- •36. Способы сортировки.
- •37. Методы, используемые для изменения данных.
- •38. Состояние набора данных. Свойство State.
- •39. Свойства компонента tDataSource.
- •40. События DataSource.
- •41. Свойства класса tField.
- •43. Организация связи между таблица. Главная/подчиненная.
- •44. Режим кэширования изменений.
- •45. Основные сведения о языке sql.
30. Фильтрация набора данных по индексированным полям.
Индекс - структура данных, которая помогает СУБД быстрее обнаружить отдельные записи в файле и сократить время выполнения запросов пользователей.
Индекс в базе данных аналогичен предметному указателю в книге. Это — вспомогательная структура, связанная с файлом и предназначенная для поиска информации по тому же принципу, что и в книге с предметным указателем. Индекс позволяет избежать проведения последовательного или пошагового просмотра файла в поисках нужных данных. При использовании индексов в базе данных искомым объектом может быть одна или несколько записей файла. Как и предметный указатель книги, индекс базы данных упорядочен, и каждый элемент индекса содержит название искомого объекта, а также один или несколько указателей (идентификаторов записей) на место его расположения.
Хотя индексы, строго говоря, не являются обязательным компонентом СУБД, они могут существенным образом повысить ее производительность. Как и в случае с предметным указателем книги, читатель может найти определение интересующего его понятия, просмотрев всю книгу, но это потребует слишком много времени. А предметный указатель, ключевые слова в котором расположены в алфавитном порядке, позволяют сразу же перейти на нужную страницу.
Структура индекса связана с определенным ключом поиска и содержит записи, состоящие из ключевого значения и адреса логической записи в файле, содержащей это ключевое значение. Файл, содержащий логические записи, называется файлом данных, а файл, содержащий индексные записи, — индексным файлом. Значения в индексном файле упорядочены по полю индексирования, которое обычно строится на базе одного атрибута.
31.Способ фильтрации набора данных с использованием свойств Filter, Filtered и FilterOptions.
Свойство Filter.
Сам фильтр записывается в свойство Filter в виде строки, содержащей определенные ограничения на значения полей. При ее использовании набор данных ограничивается записями, удовлетворяющими выражению фильтра, задающему условия отбора записей. Важным достоинством фильтрации по выражению является то, что она применима к любым полям, в том числе к неиндексированным.
Выражение фильтра представляет собой конструкцию, в состав которой могут входить следующие элементы:
•имена полей таблиц - если имя поля содержит пробелы, то его заключают в квадратные скобки, в противном случае квадратные скобки необязательны. Использовать имена вычисляемых полей нельзя;
• литералы - значение, заданное явно, например, число, строка или символ. Имена переменных в выражении фильтра использовать нельзя. Если в выражение фильтра требуется включить значение переменной или свойства какого-либо компонента, то это значение должно быть преобразовано в строковый тип;
• операции сравнения - <, >, =, <=, >= и <>;
• арифметические операции - +, -, * и /;
• логические операции - AND, OR и NOT;
• круглые и квадратные скобки - для изменения порядка выполнения арифметических и логических операций.
При задании строки фильтрации можно использовать символ звездочки «*», который как в обычных шаблонах означает: «любое количество любых символов». В таблицах Paradox не допускается сравнение значений одного поля с другим, например нельзя написать Sound < Graphics, где Sound и Graphics - это имена двух полей.
Свойство Filtered.
Свойство Filtered включает или выключает использование фильтра. По умолчанию это свойство имеет значение False, и фильтрация выключена. При установке свойству Filtered значения True фильтрация включается, и в набор данных отбираются записи, которые удовлетворяют фильтру, записанному в свойстве Filter. Если выражение фильтра не задано (по умолчанию), то в набор данных попадают все записи.
После установки фильтра в свойстве Filter он не будет активным до тех пор, пока свойству Filtered не будет присвоено значение true. Для отключения фильтрации достаточно сбросить значение свойства Filtered в false.
Во время разработки приложения по возможности необходимо проверять выражения, записываемые в свойство Filter, с помощью установки свойства Filtered в окне инспектора объектов, так как пока фильтр не станет активным, он не проверяется на корректность. Если выражение фильтра содержит ошибки, то при попытке выполнить его генерируется исключительная ситуация.
Активизация фильтра и выполнение фильтрации возможны также на этапе разработки приложения.
Свойство FilterOptions.
Параметры фильтрации задаются с помощью свойства FilterOptions типа TFilterOptions. Это свойство принадлежит к множественному типу и может принимать комбинации двух значений:
• foCaseInsensitive — регистр букв не учитывается, т. е. при задании фильтра Post = 'водитель' слова Водитель, ВОДИТЕЛЬ или водитель будут восприняты как одинаковые. Значение foCaseInsensitive рекомендуется отключать, чтобы различать слова, написанные в различных регистрах;
• foNoPartialCompare — выполняется проверка на полное соответствие содержимого поля и значения, заданного для поиска. Обычно применяется для строк символов. Например, при выключенном значении foNoPartialCompare для фильтра Post = 'в*' будут отобраны записи, у которых в поле Post содержатся значения Водитель, Вод., Вод-ль или Врач.
По умолчанию оба параметра фильтра выключены, и свойство Filteroptions имеет значение [ ] .