M Y D E L P H I 7 . R U Самоучитель программирования  
 
  • Главная
  •  

     

    Диапазоны

    В наборе данных, помимо фильтров, имеется еще одно средство отбора записей. Группа методов позволяет на основе использования индексов отбирать в набор данных только те записи, значения индексированных полей которых (для текущего индекса) соответствуют диапазону заданных величин.

    Диапазоны работают быстрее фильтров, но менее гибки и не так удобны в работе. При использовании диапазонов набор данных обязательно должен находиться в состоянии dsSetKey (см. ниже).

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

     Примечание 

    Все методы работы с диапазонами используют те поля, которые заданы в текущем индексе. Для таблиц Paradox и dBASE это свойство indexName. Для таблиц серверов SQL это свойство indexFieldNames.

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

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

    После этого необходимо использовать метод AppiyRange, который применяет созданный диапазон к набору данных:

    with Tablel do 

    begin

    SetRangeStart;

    Fields[0].Value := '439';

    SetRangeEnd;

    Fields[1].Value := '522';

    AppiyRange; 

    end;

    Работающий диапазон можно модифицировать аналогичным образом: после вызова методов EditRangestart и EditRangeEnd необходимо задать новые границы для ключевых полей и снова вызвать метод AppiyRange:

    with Tablel do

     begin

    EditRangeStart;

    Fields[0].Value := '500';

    EditRangeEnd;

    Fields[1].Value := '522';

    AppiyRange; 

    end;

    Отмена диапазона осуществляется методом CancelRange.

    Если индекс содержит несколько полей, то перед вызовом метода AppiyRange необходимо задать значения для всех ключевых полей.

    Для одновременного задания верхней и нижней границы диапазона можно использовать Метод SetRange.

    with Tabiel do

     begin

    SetRange(['500'], ['522']);

    AppiyRange; 

    end;

    Тем, какая граница будет у диапазона — открытая или закрытая, управляет свойство KeyExclusive. Если оно имеет значение True, граничные значения в диапазон не включаются, в противном случае — включаются.