§ 19. Компоненты для работы с базами данных

Упражнения

Для проекта из примера 19.13 добавьте следующие возможности:

  1. Добавить новую вкладу для компонента PageControl, которую следует назвать Форма.
  2. Разместить на вкладке «Форма» следующие компоненты:

    Компонент поле DBEdit расположен на вкладке DataControls. Для таких компонентов можно установить связи с полями базы данных, изменив их свойства в инспекторе объектов:

    3*. Добавить возможность смены шрифта и цвета для компонентов, расположенных на форме.

2. Реализуйте возможность добавления записей в таблицу с использованием дополнительной формы (для проекта примера 19.13).

    1. Разместите на вкладке «Таблица» кнопку «Добавить запись». Сделайте ее невидимой.
    2. Создайте новую форму в проекте: File-> New-> VCL Form — C++Builder.
    3. Сохраните форму в папку с проектом.
    4. Добавьте строку #include "Unit2.h" в файл Unit1.h. (возможность доступа ко второй форме из первой).
    5. Добавьте строку #include "Unit1.h" в файл Unit2.h. (возможность обращаться к компонентам первой формы из второй).
    6. Разместите на Form2:
      • 5 компонентов LabeledEdit (название расположить слева: свойство LabelPosition=lpLeft),
      компонент Button («ОК»).
      Кнопка «Добавить запись» становится видимой после отображения таблицы.
    7. Для кнопки «Добавить запись» написать в обработчике команду:
      Form2->Show();
      В обработчике кнопки «ОК» на Form2 прописать следующие команды:
      Form1->ADOTable1->Active = true;
      Form1->ADOTable1->Fields->Fields[0]->ReadOnly = false;
      Form1->ADOTable1->Fields->Fields[1]->ReadOnly = false;
      Form1->ADOTable1->Fields->Fields[2]->ReadOnly = false;

      Form1->ADOTable1->Insert();
      Form1->ADOTable1->Fields->Fields[0]->Value = Form1->ADOTable1->RecordCount + 1;
      Form1->ADOTable1->Fields->Fields[1]->Value = Form2->LabeledEdit1->Text;

      Form1->ADOTable1->UpdateBatch();//применение обновлений
      Form1->ADOTable1->Refresh();
    8. *Добавьте команды проверки корректности добавляемых данных:

1. Фамилия должна записываться маленькими буквами, а начинаться с большой буквы.
2. После фамилии должен быть один пробел.
3. Инициалы записываются без пробела, большими буквами с точкой после них.
4. Дата рождения имеет формат: 2 цифры, точка, 2 цифры, точка, четыре цифры. Проверить корректность даты (месяц от 1 до 12, день от 1 до (28, 29, 30,31), год от 1900 до 2000).
5. Пол содержит одну букву: «м» или «ж».
6. Год присвоения звания — число из промежутка [1900..20..]. *Правую границу промежутка года можно получать из текущей даты.
7. При несоблюдении формата выдавать соответствующее сообщение.

3. Для проекта из примера 19.16 добавьте следующие возможности:

    1. Добавьте кнопки «Сохранить Запрос» и «Загрузить Запрос» (используя диалоги работы с файлами).
    2. Создайте и сохраните 3 запроса:
      1. С полями Название и Денежная единица, отображающий страны, у которых денежная единица евро.
      2. С полями Название и Язык, отображающий страны, у которых название языка начинается с букв 'а' или 'н'.
      3. Реализуйте свой запрос (составной, одно из полей должно быть числовым).
    3. Добавьте кнопку «Запрос 2» и текстовое поле. Реализуйте запрос для поиска стран, первые буквы названий которых введены в текстовое поле.
    4. Добавьте кнопку «Запрос 3», выпадающий список и текстовое поле. В выпадающем списке поместите знаки «>, <, =». Реализуйте запрос для поиска стран, площадь которых — значения (>, <, =), введенного в текстовое поле.
    5. Добавьте кнопку «Запрос 4», и два списка. В первый список поместите названия полей, во второй — слова «возрастание», «убывание». Реализуйте запрос, который сортирует таблицу согласно выбранным критериям.