Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
62
Добавлен:
31.12.2017
Размер:
805.38 Кб
Скачать

Свойства компонентов для задания 3

Свойство

Значение

Примечание

ADOTable1: TADOTable (главная таблица)

ConnectionString

См. табл.1

TableName

customer

Имя файла с таблицей

Active

True

Управляет открытием таблицы

DataSource1: TDataSource

DataSet

ADOTable1

Имя компонента, через который передаются данные из БД и в БД

Name

DataSource1

Имя компонента

DBGrid1: TDBGrid

DataSource

DataSource1

Имя компонента, через который осуществляется обмен и управление данными

Name

DBGrid1

Имя компонента

ADOTable2: TADOTable (подчиненная таблица)

ConnectionString

См. табл.1

MasterSource

DataSource1

Имя компонента типа TDataSource, связанного с главной таблицей

MasterFields

CustNo

Список полей главной таблицы для связи с подчиненной таблицей

IndexFieldNames

CustNo

Индексный ключ (список полей подчиненной таблицы, по значениям которых упорядочиваются записи)

Active

True

Управляет открытием таблицы

Свойство

Значение

Примечание

Name

ADOTable2

Имя компонента

TableName

orders

Имя файла с таблицей

DataSource2: TDataSource

DataSet

ADOTable2

Имя компонента, через который передаются данные из БД и в БД

Name

DataSource2

Имя компонента

DBGrid2: TDBGrid

DataSource

DataSource2

Имя компонента, через который осуществляется обмен и управление данными

Name

DBGrid2

Имя компонента

DBNavigator: TDBNavigator

DataSource

DataSource1

Имя компонента, чьим набором данных управляет навигатор

Name

DBNavigator

Имя компонента

Задание 5.Приложение, созданное при выполнении задания 4, дополнить компонентами, обеспечивающими доступ, управление и отображение данных из таблицы PARTS, и связать эту таблицу в качестве подчиненной с таблицей ITEMS. Из таблицы PARTS требуется отображать только содержимое поляDescription (описание поставляемого изделия) в компоненте типа TDBEdit. Проверить работу приложения, которое должно отображать данные из четырех связанных таблиц. Сохранить приложение на устройствеHв папкеLab1-Task5.

Задание 6.Создать приложение с формой типа ввод/редактирование для просмотра таблицы ITEMS и затем дополнить созданное приложение компонентом типа TDBGrid, чтобы продублировать отображение содержимого таблицы ITEMS (рис.8). Проверить работу приложения. Сохранить приложение на устройствеHв папкеLab1-Task6.

Задание 7.Обеспечить целостность БД с учетом того, что в таблице ITEMS значения поляOrderNoне должны отличаться от номеров заказов, зафиксированных в таблице ORDERS ; значения поляPartNoне должны отличаться от номеров поставок изделий, зафиксированных в таблице PARTS ; значения поляItemNoдолжны находиться в определенном диапазоне (например, 1 - 5).

Рис.8.Форма типа ввод/редатирование, дополненная компонентом TDBGrid для посмотра таблицы ITEMS

Порядок выполнения задания 7.

Чтобы обеспечить ввод только допустимых значений в поля OrderNo иPartNo таблицы ITEMS , а также установку номера поставки путем выбора названия изделия и запретить доступ к отображаемому значению поляDiscount, следует в форме, созданной Мастером форм БД, заменить компоненты типа TDBEdit компонентами других типов, указанными в табл.3 (рис.9).

Таблица 3

Типы замещающих компонентов

Отображаемое

поле

Тип

компонента

Отображаемое

поле

Тип

компонента

OrderNo

PartNo

TDBLookupList

TDBLookupCombo

ItemNo

Discount

TDBComboBox

TDBText

Н

Рис.9.Форма с замененными и дополнительными компонентами

астроить эти компоненты, чтобы:

1) поле OrderNo (номер заказа) содержало значение, имеющееся в таблице ORDERS ;

2) поле ItemNo(порядковый номер изделия в заказе) содержало значение, выбираемое из диапазона 1 - 5;

3) поле PartNoпо номеру поставки находило в таблице PARTS и отображало в рабочем поле формы название соответствующего поставляемого изделия (товара);

4) поле Discount(скидка) было доступно только для просмотра.

Компоненты типа TDBLookupList и TDBLookupCombo, находящиеся в группе Win 3.1палитры компонентов, или компоненты типа TDBLookupListBox и TDBLookupComboBox, находящиеся на страницеData Controls, позволяют устанавливать значение поля в строке таблицы с учетом значений полей, хранящихся в другой (связанной) таблице.

Таблица (ORDERS или PARTS), связанная с таблицей ITEMS, должна быть представлена в рабочем поле формы компонентами типа TADOTable и TDataSource. Связь таблиц задается установкой перечисленных в табл.4 свойств компонента типа TDBLookupList или TDBLookupCombo: связь с данными, хранящимися в таблице ITEMS , задается свойствомDataSource; имена устанавливаемых полейOrderNoиPartNoтаблицы ITEMS являются значениями свойстваDataField; связь с данными, взятыми из таблиц ORDERS и PARTS , задается свойствомLookupSource; имена полейOrderNoтаблицы ORDERS иPartNoтаблицы PARTS , значения которых выбираются для записи в одноименные поля таблицы ITEMS , являются значениями свойстваLookupField; имена полейOrderNoтаблицы ORDERS иDescriptionтаблицы PARTS , значения которых отображаются на экране, являются значениями свойстваLookupDisplay.

Таблица 4

Свойства компонентов для задания 7

Свойство

Значение

Примечание

DBLookupList1: TDBLookupList

DataSource

DataSource1

Имя компонента, обеспечивающего доступ к таблице ITEMS

DataField

OrderNo

Имя поля в таблице ITEMS, значение которого отыскивается в таблице ORDERS

LookupSource

DataSource2

Имя компонента, через который осуществляется обмен и управление данными из таблицы ORDERS, связанной с таблицей ITEMS

LookupDisplay

OrderNo

Имя поля в таблице ORDERS, значения которого отображаются в компоненте DBLookupList1

LookupField

OrderNo

Имя поля в таблице ORDERS, значение которого отыскивается по значению поля, указанного в свойстве DataField

DBLookupCombo1: TDBLookupCombo

DataSource

DataSource1

Имя компонента, обеспечивающего доступ к таблице ITEMS

DataField

PartNo

Имя поля в таблице ITEMS, значение которого отыскивается в таблице PARTS

LookupSource

DataSource3

Имя компонента, через который осуществляется обмен и управление данными из таблицы PARTS , связанной с таблицей ITEMS

LookupDisplay

Description

Имя поля в таблице PARTS, значение которого отображается в компоненте DBLookupCombo1

LookupField

PartNo

Имя поля в таблице PARTS, значение которого отыскивается по значению поля, указанного в свойстве DataField

Компонент типа TDBLookupList или TDBLookupCombo отыскивает в таблице, связанной с LookupSource,строку, в которой значение поля с указанным вLookupFieldименем совпадает со значением поля с указанным вDataFieldименем, и отображает из найденной строки значение поля, имя которого указано вLookupDisplay.

При использовании компонентов типаTDBLookupListBoxи TDBLookupComboBoxследует учесть, что у них вместо свойствLookupSource, LookupField, LookupDisplayпредусмотрены соответственно свойства ListSource, KeyField, ListField.

Компонент типа TDBComboBox отображает значение поля и задает список возможных значений этого поля. Пример устанавливаемых значений свойств приведен в табл.

Таблица 5

Свойства компонента DBComboBox1

Свойство

Значение

Примечание

DBComboBox1: TDBComboBox

DataField

ItemNo

Имя поля, значение которого отображается и устанавливается

DataSource

DataSource1

Имя компонента, обеспечивающего доступ к таблице ITEMS

Items

1

2

3

4

5

Список возможных значений, присваиваемых полю текущей записи; значения задаются в текстовом редакторе, который вызывается из инспектора объектов нажатием кнопки, расположенной в строке свойства Items

Отличие компонента типа TDBText от компонента типа TDBEdit заключается в недоступности отображаемого значения поля для изменения. Для этих компонентов обязательно задаются свойстваDataSource, DataField иName.

Проверить работу приложения, осуществив корректировку имеющихся и вставку новых строк в таблицу ITEMS , выбирая значения полей OrderNo иPartNoс помощью компонентов типа TDBLookupList и TDBLookupCombo; изменение данных наблюдать в дополнительно размещенном компоненте типа TDBGrid.

Задание 8.Создать новое приложение для выполнения операторов языка SQL.

Порядок выполнения задания 8.

1. В форму нового приложения со страницы Standard палитры компонентов поместить компонент Memo и три компонента Button, со страницы Data Access компоненты ADOQuery и DataSource, со страницы Data Controls компонент DBGrid.

Компонент Memo предназначен для ввода операторов SQL, три кнопки служат для управления выполнением операторов SQL, а остальные компоненты необходимы для обеспечения взаимодействия с базой данных.

FORM1

БД

Memo1

Button1

Button2

Button3

BDE

Query1

DataSource1

DBGrid1

Рис.10.Расположение и назначение компонентов

Компонент DBGrid служит для отображения данных, извлеченных из БД, компонент ADOQuery извлекает или помещает данные из/в БД с помощью BDE, а компонент DataSource обеспечивает взаимодействие компонентов DBGrid и ADOQuery.

Компонент ADOQuery имеет среди прочих следующие свойства:

SQL - оператор SQL, который должен быть выполнен;

ConnectionString - спецификация БД, на таблицы которой есть ссылки в операторе SQL.

Для управления компонентом ADOQuery используютя специальные методы Close, Open, ExecSQL. Значение свойства SQLустанавливается методами Clear и Add.

2. Настроить компоненты, размещенные в форме Form1 (рис.11):

Компонент

Свойство

Значение

ADOQuery1

ConnectionString

См. табл.1

DataSource1

Dataset

ADOQuery1

DBGrid1

DataSource

DataSource1

Button1

Caption

SELECT

Button2

Caption

Update, Insert, Create, ...

Button3

Caption

Стереть результаты

F

Рис.11.Форма с компонентами

orm1

Caption

Интерактивный SQL

Двойным щелчком на компоненте Button1 перейти в окно редактора и набрать следующие операторы:

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(Memo1->Text);

ADOQuery1->Open();

Перейти в форму Form1, щелкнув на ее заголовке.

Двойным щелчком на компоненте Button2 перейти в текстовый редактор и набрать следующие операторы:

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(Memo1->Text);

ADOQuery1->ExecSQL();

Перейти в форму Form1, щелкнув на ее заголовке.

Двойным щелчком на компоненте Button3 перейти в текстовый редактор и набрать следующие операторы:

ADOQuery1->Close();

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add("select * from parts");//фиктивный оператор

ADOQuery1->ExecSQL();

Перейти в форму Form1, щелкнув на ее заголовке.

3. Запустить созданное приложение на выполнение и с помощью оператора SELECT вывести содержимое таблиц CUSTOMER,ORDERS,ITEMS, PARTS.

4. Выполнить для указанных таблиц записанные в отчет по лабораторной работе №1 операторы языка SQLс выборкой, сортировкой, группировкой, изменением и добавлением данных.

Соседние файлы в папке МП лаб