Створення бази даних в Delphi, без сторонніх БД. Частина 2, Різне, Програмування, статті

У попередній статті про створення бази даних в Delphi, Я розповідав про компонент TClientDataSet, як підключатися до локальної бази даних і створювати нову локальну таблицю. Сьогодні я вам розповім, як фільтрувати записи в таблиці і індексувати їх. Фільтровка записів таблиці це еквівалент SQL запитами. Фільтровка потрібна, для того щоб показати користувачеві менше записів згідно з певним умові (наприклад: показати тільки тих учнів групи у кого день народження в червні або в грудні і т.д.). Також фільтрацію можна використовувати як пошук деякого запису в таблиці. На практиці в більшості випадків SQL запити використовуються саме в таких випадках, який описаний у прикладі.

Фільтр задається, як рядок і її визначає властивість Filter, а активність фільтра визначає властивість Filtered, відповідно якщо воно True то записи фільтруються. Фільтр задається згідно з усіма правилами програмування Delphi, До яких ви звикли. Фільтр має дуже багато функцій:

1. Арифметичні та логічні функції та оператори порівняння
Приклади:
    a.  Population < 100;
    b.  Vozrast > 24 and Rost < 165;
    c.  Stoimost > 300 or Razmer < 400;
    d.  Town <> Moskva
    e.  Ves + Rost > 200;
    f.  Vozrast/Ves > 9;
2. Можна виконають операції над рядками
Приклади
a. Last_Name = “Іван”;
b. First_Name + Last_Name = “ІгорьПетров”;
    c.  Substring(Last_Name,1,2)= “Ca”;
3. Також функції дати і часу
Приклади
    a.  Year(Birth_Day) = 1986;
    b.  Day(Birth_Day) = 12;
4. Використовуються також оператори Like і In.

Всі можливості фільтрації повністю документовані у файлі довідки Delphi в розділі Developing Database Applications> Using client datasets> Limiting what records appear.

Індексацію визначає властивість IndexFieldNames. Для того щоб упорядкувати за зростанням таблицю по полю Vozrast потрібно привласнити властивості IndexFieldNames значення “Vozrast”. Дуже часто індексація потрібна тоді, коли користувач клацає на заголовках стовпців компонента DBGrid.

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
   ClientDataSet1.IndexFieldNames:=Column.FieldName;
end;

Також можна створити індекси за допомогою властивості IndexDefs. Індекси можна створити як під час виконання, так і в стадії створення бази даних. Під час виконання Delphi-Додатки, для того щоб створити індекс потрібно викликати метод Add властивості IndexDefs. Перший параметр це ім’я індексу, другий – ім’я поля (або полів), третій – опції. Тепер для того щоб упорядкувати таблицю по полю потрібно привласнити властивості IndexName ім’я потрібного індексу. Даний метод краще, ніж попередній, тому що можна швидко перемикатися між створеними заздалегідь індексами. Для того щоб змінити індекси потрібно скористатися властивістю Items властивості IndexDefs, вказавши порядковий номер індексу. Отримати порядковий номер індексу можна через метод властивості IndexDefs IndexOf, вказавши ім’я індексу. Наприклад:

    
var
   i:integer;
begin
…..
i:=ClientDataSet1.IndexDefs.IndexOf(“i3”);
ClientDataSet1.IndexDefs.Items[i].Fields:=”Birth_Day”;
…..

Читати частина 3

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*