Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ ПР СПЗ БКС 2014.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
266 Кб
Скачать
☆

Ход работы

Упражнение 10

  1. Разместите на новой форме таблицу (компонент Table; Name – Table1) и источник данных (компонент DataSource; Name – DataSource1).

  2. С

    - 35 -

    вяжите таблицу с табличным примером ORDERS.DB (свойству DatabaseName таблицы Table1 присвойте значение DBDEMOS, а свойству TableName - значение ORDERS.db) и свяжите ис­точник данных с этой таблицей (свойству Dataset источник данных DataSource1 присвойте значение Table1).

  3. Установите свойство Active таблицы Table1 равным True.

  4. Теперь точно так же разместите другую таблицу (компонент Table; Name – Table2) и другой источник данных (компонент DataSource; Name – DataSource2), соединив их с CUSTOMER.DB, и установите свойство Active таблицы Table2 также равным True.

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

  1. Поместите на форму сетку данных (компонент DBGrid; Name – DBGrid1) и навигатор (компонент DBNavigator; Name – DBNavigator1), связав оба с первым источником данных (их свойству DataSource присвойте значение DataSource1).

  2. Дважды щёлкните на первой таблице, чтобы открыть окно редактора полей Fields Editor.

  3. Внесите в таблицу все поля (см. упр. 5), выберите поле CustNo и установите свой­ство Visible равным False.

  4. Закройте окно редактора полей Fields Editor.

  5. Расположите на форме комбинированный список выбора данных (компонент DBLookupCombo на странице Win 3.1).

  6. Установите его свойства следующим образом:

Свойство Значение

DataSource DataSource1

DataField CustNo

LookupDisplay Company; CustNo

LookupField CustNo

LookupSource DataSource2

  1. запустите программу.

- 36 -

Если прокручивать в сетке данных заказы, то комбинированный список выбора данных будет отображать имя соответствующего заказчика. А если вы введёте но­вый заказ, то ввести номер заказчика вам не удастся. Таким образом, риск непра­вильного ввода сводится к нулю. Вместо этого вы просто выбираете имя заказчика из комбинированного списка данных.

Вы также можете попробовать в работе новые версии этих компонентов — DBLookupListBox и DBLookupComboBox. Они не обладают возможностью отобра­жать несколько полей, однако их можно напрямую связать с имеющимися в таб­лице полями поиска.

Упражнение 11

  1. В предыдущем упражнении замените комбиниро­ванный список выбора данных (компонент DBLookupCombo) его улучшенной верси­ей (компонент DBLookupComboBox, на странице Data Controls).

  2. Дважды щёлкните на компоненте Table1, с по­мощью щелчка правой кнопкой мыши на этом же компоненте откройте окно редактора полей Fields Editor и из появившегося меню выберите пункт New field.

  3. В качестве имени поля введите CompanyLook, тип поля установите в String и выберите переключатель Lookup.

  4. Выберите компонент Table2 из списка свойства Dataset и установите свойст­ва Key Fields и Lookup Keys равными имени поля CustNo.

  5. Теперь из списка Result Field выберите поле Company. Щёлкните на кнопке ОК для создания поля выбора.

  6. Перейдите в окно главной формы, установите свойство DataSource компонента DBLookupComboBox равным DataSource1, а свойство DataField — равным CompanyLook. В результате компонент немедленно заполнился данными.

- 37 -

средст­во Database Form Wizard при создании приложения предлагает на выбор использова­ние сетки либо формы, наполненной компонентами работы с данными. Если же вам нужно что-то получше сетки, но вместе с тем с возможностью отображения несколь­ких полей одной записи, то для этого имеется комбинированная сетка данных (компонент DBCtrlGrid). Комбинированная сетка данных является ком­промиссом между формой, на которой разбросаны поля од­ной записи, и сеткой, где все записи отображаются вме­сте со всеми полями.

Упражнение 12

  1. Откройте новый проект, выполните команду FileNew, в открывшемся окне выберите Data Module.

  2. Щёлкните на главной форме, выполните команду FileUse unit и ука­жите модуль данных Unit1.

  3. Теперь из меню Database выберите пункт Explore, в результате чего на эк­ране появится окно Database Explorer (SQL Explorer).

  4. В базе данных DBDemos найдите таблицу EMPLOYEE.DB (DBDemos\Tables\ EMPLOYEE.DB).

  5. Теперь перетащите её из окна Database Explorer в свой модуль данных.

  6. Поместите в окно модуля данных компонент DataSource.

  7. Подключите источник к таблице (установите свойство DataSet компонента DataSource1 в Table1) и установите свойство Active равным True.

  8. Поместите на форму комбинированную сетку данных (компонент DBCtrlGrid) и сделайте её размер примерно соответствующим размеру формы.

  9. Установите её свойство DataSource равным имени (DataModule2.DataSource1) источника данных, находящегося в модуле данных, а свойство RowCount — равным 4.

  10. Поместите на форму навигатор и свяжите его с тем же источником данных.

  11. Вернитесь в окно Database Explorer и раскройте таблицу EMPLOYEE так, чтобы вы видели весь список полей.

  12. Т

    - 38 -

    еперь по одному перетащите поля из окна Database Explorer в верх­нюю часть компонента DBCtrlGrid. При этом каждое опускаемое на сетку поле будет преобразовываться в поле ввода данных и соответствующую надпись.

  13. Переместите полученные компоненты таким образом, чтобы занимали две строки в верхней части комбинированной сетки данных.

  14. Запустите программу. Вы увидите, что каждая запись соответствует одному набору компо­нентов, но при этом сразу можно просматривать четыре записи.

КОНТРОЛЬНЫЕ ВОПРОСЫ:

  1. Чем отличается компонент DBListBox от компонента DВLookupList?

  2. Как открыть Fields Editor и каково его назначение?

  3. Какой компонент характеризует комбинированный список выбора данных?

  4. Для чего нужен компонент DBCtrlGrid?

CОДЕРЖАНИЕ ОТЧЕТА

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

- 39 -

ПРАКТИЧЕСКАЯ РАБОТА №8

ТЕМА: Использование запроса для получения результатов баз данных в системе программирования Delphi.

ЦЕЛЬ: Изучить основные свойства компонента Query. Научиться создавать SQL – тренажёр в Delphi, изучить его основные команды

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Базы данных существуют для того, чтобы можно было вводить в них данные и для того, чтобы можно было получать из них информацию. Для этого используется запрос. Запрос (компонент Query) — это другой способ связать вашу Delphi-программу с базой данных. Подобно таблице, он обладает свойствами DatabaseName и Active и нуждается в источнике данных как посреднике для связи с компонентами ото­бражения данных. Если ваша программа открывает запрос, то он получает инфор­мацию, определенную командой SQL (Structured Query Language — Язык структу­рированных запросов), содержащейся в его свойстве SQL. Если вы установили свойство RequestLive равным True, то запрос попытается получить доступ к базе данных таким способом, чтобы результат вернулся назад в базу данных. Это воз­можно не всегда. Свойство ResultSetLive, действующее только во время работы программы, индицирует его состояние. Если ResultSetLive равно False, значит, за­прос предоставил вам копию оригинальных данных.

D

- 40 -

elphi 6 поддерживает компонент Query теми же самыми средствами, которые есть у компонента Table. Самыми важными из них являются отслеживание изме­нений и фильтры. В нагруженной сети запрос к распределённой базе данных мо­жет выполняться несколько часов, поэтому важность отслеживания изменений трудно переоценить. Если же вам нужно просмотреть подмножество данных, полу­ченных в результате запроса, то использование фильтров окажется значительно продуктивнее, чем отправка второго запроса.

Однако огромным преимуществом является то, что компонент Query вносит в ваши Delphi-программы всё могущество языка SQL. А недостаток заключается в сложности самого языка. (Что еще хуже, так это то, что SQL поставляется во многих разновидностях). Но, на самом деле, вам не нужно изучать этот язык в полном объёме. Вам достаточно обойтись знакомством с несколькими вариация­ми на тему команды Select. Выполните следующие действия.