C++. Сортировка записей в базе данных

Сортировка записей в базе данных


Содержание


Поиск на других ресурсах:

 

Условие задания

Задана таблица Tovar базы данных «db2.mdb» со следующей структурой полей:

ID_Tovar

Name Code Count Price

         
         

Поле ID_Tovar есть первичным ключом.

Выполнить сортировку данных в таблице по одному из заданных полей.

 

Выполнение

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

2. Создать базу данных Microsoft Access. Создать таблицу

Создать базу данных в Microsoft Access, которая содержит одну таблицу под названием Tovar. Имя файла базы данных произвольный.

Загрузить готовый файл базы данных можно здесь. Занести в таблицу не менее 3-х записей с целью проверки правильности сортировки.

3. Создать Windows-приложение

Подробный пример создания Windows-приложения в Borland C++ Builder 2007 описывается здесь.

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

Выносим на главную форму приложения компоненты следующих типов:

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

В результате будут созданы объекты-переменные с такими именами: ADOConnection1, ADOTable1, DataSource1, DBGrid1.

5. Настройка связей между компонентами

Настройка связей между компонентами осуществляется с помощью инспектора объектов (Object Inspector).

Чтоб настроить компоненты между собой и связать их с базой данных необходимо:

  • подключить файл базы данных к приложени с помощью свойства 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.

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