§ 19. Компоненты для работы с базами данных
Упражнения
Для проекта из примера 19.13 добавьте следующие возможности:
- Добавить новую вкладу для компонента PageControl, которую следует назвать Форма.
- Разместить на вкладке «Форма» следующие компоненты:
Компонент поле DBEdit расположен на вкладке DataControls. Для таких компонентов можно установить связи с полями базы данных, изменив их свойства в инспекторе объектов:
3*. Добавить возможность смены шрифта и цвета для компонентов, расположенных на форме.
2. Реализуйте возможность добавления записей в таблицу с использованием дополнительной формы (для проекта примера 19.13).
- Разместите на вкладке «Таблица» кнопку «Добавить запись». Сделайте ее невидимой.
- Создайте новую форму в проекте: File-> New-> VCL Form — C++Builder.
- Сохраните форму в папку с проектом.
- Добавьте строку #include "Unit2.h" в файл Unit1.h. (возможность доступа ко второй форме из первой).
- Добавьте строку #include "Unit1.h" в файл Unit2.h. (возможность обращаться к компонентам первой формы из второй).
- Разместите на Form2:
• 5 компонентов LabeledEdit (название расположить слева: свойство LabelPosition=lpLeft),
компонент Button («ОК»).
Кнопка «Добавить запись» становится видимой после отображения таблицы. - Для кнопки «Добавить запись» написать в обработчике команду:
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(); - *Добавьте команды проверки корректности добавляемых данных:
1. Фамилия должна записываться маленькими буквами, а начинаться с большой буквы.
2. После фамилии должен быть один пробел.
3. Инициалы записываются без пробела, большими буквами с точкой после них.
4. Дата рождения имеет формат: 2 цифры, точка, 2 цифры, точка, четыре цифры. Проверить корректность даты (месяц от 1 до 12, день от 1 до (28, 29, 30,31), год от 1900 до 2000).
5. Пол содержит одну букву: «м» или «ж».
6. Год присвоения звания — число из промежутка [1900..20..]. *Правую границу промежутка года можно получать из текущей даты.
7. При несоблюдении формата выдавать соответствующее сообщение.
3. Для проекта из примера 19.16 добавьте следующие возможности:
- Добавьте кнопки «Сохранить Запрос» и «Загрузить Запрос» (используя диалоги работы с файлами).
- Создайте и сохраните 3 запроса:
1. С полями Название и Денежная единица, отображающий страны, у которых денежная единица евро.
2. С полями Название и Язык, отображающий страны, у которых название языка начинается с букв 'а' или 'н'.
3. Реализуйте свой запрос (составной, одно из полей должно быть числовым). - Добавьте кнопку «Запрос 2» и текстовое поле. Реализуйте запрос для поиска стран, первые буквы названий которых введены в текстовое поле.
- Добавьте кнопку «Запрос 3», выпадающий список и текстовое поле. В выпадающем списке поместите знаки «>, <, =». Реализуйте запрос для поиска стран, площадь которых — значения (>, <, =), введенного в текстовое поле.
- Добавьте кнопку «Запрос 4», и два списка. В первый список поместите названия полей, во второй — слова «возрастание», «убывание». Реализуйте запрос, который сортирует таблицу согласно выбранным критериям.