002 – Сортування даних в таблиці бази даних

Сортування даних в таблиці бази даних


Зміст


Умова задачі

Задано таблицю Tovar бази даних, що має таку структуру

ID_Tovar

Name Code Count Price

Виконання

1. Запустити Borland C++ Builder

2. Створити базу даних в Microsoft Access. Створити таблицю

Створити базу даних Microsoft Access, яка містить одну таблицю з назвою Tovar. Ім’я файлу бази даних довільне.

Завантажити готовий файл бази даних можна тут. Занести в таблицю Tovar не менше 3-х записів для того, щоб можна було перевірити сортування.

3. Створити Windows-додаток

Детальний приклад створення Windows-додатку в Borland C++ Builder 2007 описується тут.

4. Формування компонент форми

Винести на форму такі компоненти:

  • TADOConnection;
  • TADOTable;
  • TDataSource;
  • TDBGrid.

У результаті утворяться об’єкти-змінні з такими іменами: ADOConnection1, ADOTable1, DataSource1, DBGrid1.

5. Налаштування зв’язків між компонентами

Щоб налаштувати компоненти між собою та зв’язати їх з базою даних потрібно:

  • підключити файл бази даних до програми з допомогою властивості ConnectionString компонента ADOConnection1. Детальний приклад підключення файлу бази даних до програми можна переглянути тут;
  • у компоненті ADOTable1 властивість Connection встановити в значення ADOConnection1;
  • у компоненті DataSource1 властивість DataSet встановити в значення ADOTable1;
  • у компоненті DBGrid1 властивість DataSource встановити в значення DataSource1.


6. Встановлення доступу до бази даних без введення паролю

У компоненті ADOConnection1 властивість “LoginPrompt” потрібно встановити у значення “false”.

7. Активація таблиці Tovar

У компоненті ADOTable1 властивість TableName встановити в значення Tovar (вибрати з спадного списку).

Властивість Active компонента ADOTable1 встановити в значення true. У результаті таблиця Tovar відобразиться на екрані.

8. Налаштування DBGrid1

Виконати налаштування ширини полів таблиці Tovar таким чином, щоб усі поля відображались у вікні компонента DBGrid1.

9. Кнопки виклику сортування

Для прикладу винесемо три кнопки сортування з іменами Button1, Button2 та Button3. Сформуємо властивості Caption наступним чином:

  • Button1.Caption = “Name”;
  • Button2.Caption = “Code”;
  • Button3.Caption = “Count”.

Саме по назвам полів буде відбуватись сортування.

В загальному форма матиме такий вигляд (рис. 1).

05_01_00_002_01ru

Рис. 1. Загальний вигляд форми додатку

10. Програмування обробників подій

Обробники подій кліку мишкою на кнопках Button1, Button2, Button3 мають такий вигляд.

// Кнопка Button1 (сортування за полем Name)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     ADOTable1->IndexFieldNames = "Name";  
}

// Кнопка Button2 (сортування за полем Code)
void __fastcall TForm1::Button2Click(TObject *Sender)
{
     ADOTable1->IndexFieldNames = "Code";  
}

// Кнопка Button3 (сортування за полем Count)
void __fastcall TForm1::Button3Click(TObject *Sender)
{
     ADOTable1->IndexFieldNames = "Count"; 
}

Як видно з програмного коду, у всіх трьох обробниках у властивість IndexFieldNames компонента ADOTable1 заноситься назва відповідного поля таблиці. Автоматично, відбувається сортування за заданим полем. Якщо поле IndexFieldNames залишити пустим, то дані будуть сортуватись за первинним ключем. Якщо первинного ключа в таблиці немає, то дані будуть розміщуватись по мірі їх внесення в таблицю.

Більш ширші можливості сортування дає компонент TADOQuery.

Після запуску проекту на виконання видно, що дані в таблиці сортуються після натиску відповідної кнопки.