- •Содержание
- •4. 5. Контрольные вопросы....................................................................44
- •7. 1. Краткие теоретические сведения..................................................59
- •8. 1. Краткие теоретические сведения...................................................70
- •Введение
- •1. 1. Главное окно
- •2. Лабораторная работа №1 Тема: Ввод и вывод
- •2. 1. Экранная форма (Form)
- •2. 1. 1. Таблица свойств (Form)
- •2. 2. Кнопка (Button)
- •2. 2. 1. Таблица свойств для Button
- •2. 3. Однострочный редактор (Edit)
- •2. 3. 1. Таблица свойств для Edit
- •2. 4. Контрольные вопросы
- •2. 5. Задания к лабораторной работе
- •3. Лабораторная работа №2 Тема: Программирование алгоритмов линейной структуры
- •3. 1. Классификация типов данных
- •3. 2. Константы
- •“Это начало строки, ” “а это ее продолжение”
- •“Это начало строки, а это ее продолжение”
- •3. 3. Задания к лабораторной работе
- •4. Лабораторная работа №3 Тема: Программирование алгоритмов циклической структуры
- •4. 1. Условный оператор if... Else
- •4. 1. 1. Об условиях в операторе if
- •4. 2. Цикл while
- •4. 3. Цикл do while
- •4. 4. Цикл for
- •4. 5. Контрольные вопросы
- •5. Лабораторная работа №4 Тема: Работа с массивами
- •5. 1. Контрольные вопросы
- •5. 2. Задания к лабораторной работе
- •6. Лабораторная работа №5
- •Изучение утилит Database Desktop (dbd), bd Administrator Использование компонентов tDataModule, tTable, tDataSet
- •6. 1. Краткие теоретические сведения
- •6. 2. Модуль данных
- •6. 3. Доступ к содержимому поля
- •6. 4. Поиск записей
- •6. 5. Фильтры
- •6. 6. Задание
- •6. 7. Ход выполнения работы
- •6. 8. Контрольные вопросы
- •7. Лабораторная работа №6 Тема: Программирование объекта tQuery
- •7. 1. Краткие теоретические сведения
- •7. 2. Задание
- •7. 3. Ход выполнения работы
- •7. 4. Контрольные вопросы
- •8. Лабораторная работа №7 Тема: Создание связей между таблицами
- •8. 1. Краткие теоретические сведения
- •8. 2. Задание
- •8. 3. Ход выполнения работы
- •8. 4. Контрольные вопросы
- •9. Лабораторная работа №8 Тема: Работа с полями
- •9. 1. Краткие теоретические сведения
- •9. 2. Задание
- •9. 3. Ход выполнении работы
- •9. 4. Контрольные вопросы
- •10. Задания к базам данных
8. 4. Контрольные вопросы
1. Как можно связать данные из главной и подчиненной таблиц?
2. Каким образом выполняются запросы на вставку и удаление?
9. Лабораторная работа №8 Тема: Работа с полями
9. 1. Краткие теоретические сведения
Fields Editor позволяет связать пользовательские объекты с некоторыми или со всеми полями таблицы. Связав пользовательский объект с полем, можно получить возможность контролировать способ отображения, форматирования, проверки и ввода данных в это поле. Кроме того, Fields Editor позволяет в процессе выполнения программы добавлять в таблицу новые поля и вычислять соответствующие им значения. Такие поля называются вычисляемыми. Еще одна возможность Fields Editor состоит в форматировании полей поиска. Поля поиска позволяют просматривать данные одной таблицы из другой таблицы с помощью внешнего ключа [1].
Для редактирования набора данных, содержащихся в таблицах базы данных, предназначены следующие методы [2]:
void __fastcall Post(void); (данные записываются на диск)
void __fastcall Insert(); (вставка новой записи в текущей позиции курсора )
void __fastcall Edit(); (режим редактирования)
void __fastcall Append(); (добавляется новая запись в конце набора данных)
void __fastcall Delete(); (удаляется текущая запись)
void __fastcall Cancel(); (отменяет внесенные изменения)
9. 2. Задание
1. Создать приложение для таблицы Animals, в котором в объекте TDBGrid отображается вычисляемое поле Mass, значение этого поля представляет произведение двух полей WEIGHT и SIZE.
2. Создать приложение, использующее поля просмотра для выбора автора книги. Создайте следующие таблицы:
Структура таблицы Author.db.
Имя |
Тип |
Ключ |
AuthNo |
AutoInc |
Ключ |
First |
Character(25) |
не определен |
Last |
Character(25) |
не определен |
Dates |
Character(25) |
не определен |
Структура таблицы Book.db.
Имя |
Тип |
Ключ |
BookNo |
AutoInc |
ключ |
AuthNo |
LongInt |
внешний ключ |
Title |
Character(35) |
не определен |
При включении новой книги в таблицу Book предусмотреть возможность автоматического просмотра списка автора.
9. 3. Ход выполнении работы
Задание №1
1. Откройте новое приложение.
2. В модуль данных (имя- DMod) поместите объекты TQuery, TDataSource.
3. Для объекта TQuery установите свойства :
· DatabaseName-имя используемого псевдонима.
· Name AnimalsQuery
· SQL –select * from Animals
· Active-True
· набор изменяемый (свойство RequestLive -True)
4. Для объекта TDataSource установите свойства:
· Name-AnimalsSource
· DataSet-AnimalsQuery
5. Щелчком правой кнопки мыши по объекту TQuery вызовите Fields Editor. Затем из контекстного меню выберите команду Add Field. По умолчанию выделены все поля, щелкните ОК и закройте редактор.
6. Снова откройте редактор полей. Из контекстного меню выберите команду New Field. В окне New Field в текстовом поле Name введите– Mass, задайте тип нового поля как Integer и Calculated
7. Чтобы поместить значение в новое поле, в окне инспектора объектов выделите объект AnimalsQuery.
8. Создайте событие OnCalcField :
void __fastcall TDMod::AnimalsQueryCalcField(TDataSet *DataSet)
{
AnimalsQuerymass->AsInteger=
AnimalsQuerySIZE->AsInteger*AnimalsQueryWEIGHT->AsInteger;
}
9. Включите модуль данных в основную программу.
10. В верхней части формы поместите объект TPanel, на панель поместите два объекта TButton.
11. Пониже разместите объект TDBImage и TDBGrid как показано на рисунке.
12. Покажите в сетке поля: NAME, SIZE, WEIGHT, MASS. Для этого вызовите Columns Editor из контекстного меню из окна свойств инспектора объектов.
13. Выберите для сетки указанные поля.
14. Свяжите компонент TDBImage с полем BMP.(свойство DataSource, свойство DataField)
15. Создайте процедуру при нажатии кнопки “Modify Field”. (Свойство Name-ModifyBtn)
void __fastcall TForm1::ModifyBtnClick(TObject *Sender)
{
int i;
AnsiString S;
DMod->AnimalsQuery->Edit();
i = DMod->AnimalsQuerySIZE->Value;
S = DMod->AnimalsQueryNAME->Value;
i += 1;
S = "FFF";
DMod->AnimalsQuerySIZE->Value = i;
DMod->AnimalsQueryNAME->Value = S;
}
16. Для кнопки “Cancel Modify Field” создайте процедуру отмены изменений:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Dmod->AnimalsQuery->Cancel();
}
17. Запустите приложение. Убедитесь в его работоспособности.
Задание №2
1. Data
2. Откройте новое приложение и введите в него модуль данных.
3. Добавьте в модуль данных таблицы Books и Authors.
4. Присвойте таблицам и соответсвующие имена, например AuthorTable, BookLookupTable, AuthorSource, BookLookupSource
5. Откройте Fields Editor для обеих таблиц создайте объект для каждого из полей.
6. Введите в модуль данных второй экземпляр таблицы Book. Присвойте таблице и источнику данных соответствующие имена BookDetailTable, BookDetailSource.
7. Свяжите таблицы BookDetailTable и AuthorTable.
8. Создайте в таблице AuthorTable вычисляемое поле под названием FirstLast.
9. После создания вычисляемого поля присвойте следующий метод событию OnCalcFields:
void __fastcall TMod::AuthorTableCalcFields(TDataSet *DataSet)
{
AuthorTableFiestLast->AsString=AuthorTableFiest->AsString+” “+AuthorTableLast->AsString;
}
10. Создайте поле просмотра. Откройте окно Fields Editor. Создайте новое поле под названием AuthorLookup. Задайте в качестве значения его свойства Type тип String, в качестве значения свойства Field Type –тип Loolup. Свойство KeyField должно иметь свойство AuthNo, свойство DataSet –значение AuthorTable, свойство Lookup Key значение-значение AuthNo, свойство Result Field –значение FirstLast.
11. Поместите в основную форму два компонента TDBGrid. Свяжите их с таблицами модуля данных.
Сохраните приложение. Запустите его на выполнение.