Инфоурок Информатика Другие методич. материалыМетодические рекомендации "Технология разработки программного обеспечения"

Методические рекомендации "Технология разработки программного обеспечения"

Скачать материал

4. Раздел ЛАБОРАТОРНЫЕ РАБОТЫ (ЛАБОРАТОРНЫЙ ПРАКТИКУМ)

 

Номер

раздела, тема дисциплины

Цель и содержание лабораторной работы

Результаты лабораторной работы

Формы
контроля выполнения работы

Объем в часах

Лабораторная работа № 1: Создание базы данных

1. Создание базы данных

Освоение приемов создания альяса и структуры баз данных, заполнения записями БД.

 

База данных

Файл базы данных сохраненныйв алиасе

1

Лабораторная работа № 2: Компоненты для обработки записей баз данных. Получение доступа к данным механизмом BDE.

2. Компоненты для обработки записей баз данных

Просмотр записей в виде таблицы, в виде разработанной формы. Рассмотрение различных компонент для разработки формы просмотра записей.

 

Форма с таблицей БД

Файл – проект показа данных в табличном и пользовательском виде

1

Лабораторная работа №3: Применение технологии ADO

3. Применение технологии ADO

Получение доступа к данным с помощью ADO технологии

Форма с таблицей БД

Файл – проект показа данных в табличном и пользовательском виде

2

Лабораторная работа №4: Запросы и SQL-конструкции

4. Запросы. Создание запросов

Создание запросов разного типа. Применение SQL-конструкции

Форма с запросом

Файл – проект с  таблицей запросов

2

Лабораторная работа №5: Запросы и оформление запросов кнопками, доступ к полям и типам данных

 

5. Оформление, активизация,  запроса, получение доступа с помощью кнопок

Оформление, активизация,  запроса, получение доступа с помощью кнопок

Написать программу получения доступа к данным из запроса

Файл – проект с  таблицей запросов

2

Лабораторная работа №6: Ввод данных в таблицу запросов через форму,

Связь между формами

 

6. Ввод данных в таблицу запросов через форму

Ввод данных в таблицу запросов через форму

Написать программу внесения изменений в запрос и сохранения изменений

Файл – проект с  таблицей запросов

2

Лабораторная работа №7: Организация поиска данных, заполнение мемо-полей, модификация столбцов таблицы  

 

7. Последовательный поиск

Организация поиска данных, модификация столбцов, заполнение мемо-полей

Написать программу последовательного поиска, заполнение мемо-полей

Файл – проект поиска данных

2

Лабораторная работа №8: Составление отчетов

 

8. Отчет по разным критериям.

Составление отчета с помощью компонентов вкладки QReport

Создать отчет с помощью вкладки QReport

Файл – проект отчета

2

Лабораторная работа №9: Создание баз данных на сервере InterBase

 

9. Создание баз данных на сервере InterBase

Регистрация, настройка сервера, получение доступа

Создать базу данных на сервере InterBase

Файл  серверной базы данных

1

 

           

 

Лабораторная работа № 1: Создание базы данных

Цель работы: освоение приемов создания альяса и структуры баз данных, заполнения записями БД.

 

Базами данных (БД) называют электронные хранилища информации, доступ к которым осуществляется с помощью одного или нескольких компьютеров. Обычно БД создается для хранения и доступа к данным, содержащим сведения о некоторой предметной области (ПО), то есть некоторой области человеческой деятельности или области реального мира. Приложения баз данных предназначены для взаимодействия с некоторой БД. Взаимодействие подразумевает получение данных, их представление в определенном формате для просмотра пользователем, редактирование в соответствии с реализованными в программе бизнес-алгоритмами и возврат обработанных данных обратно в базу данных.

Базы данных всегда были важнейшей темой при изучении информационных систем. Однако в последние годы всплеск популярности Интернета и бурное развитие новых технологий для Интернета сделали знание технологии баз данных для многих одним из актуальнейших путей карьеры. Технологии баз данных увели Интернет-приложения далеко от простых брошюрных публикаций, которые характеризовали ранние приложения. В то же время Интернет-технология обеспечивает пользователям стандартизированные и доступные средства публикации содержимого баз данных. Правда, ни одна из этих новых разработок не отменяет необходимости в классических приложениях баз данных, которые появились еще до развития Интернета для нужд бизнеса. Это только расширяет важность знания баз данных.

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


1       БД «Студенческая картотека ВКГУ»

 

Этап концептуального проектирования

 

Данный этап является общезначимым, ответственным и независящим от программиста и технических средств, в которых далее разрабатывается БД. На данном этапе производится обзор требований и разработка общего проекта, на данном уровне рассматривается высокоуровневая интегрируемая основа предприятия либо подразделения.

Задачами данного этапа являются:

1.             Анализ информационных потребностей и концептуальных требований пользователя, выявление имеющихся задач по обработки информации, которые должны быть представлены в новой БД.

2.             Выявление информационных объектов и связей между ними.

3.             Построение инфологической модели предметной области и документирования результатов анализа.

 

 

 Описание предметной области

 

Перед тем как приступить к разработке базы данных, рассмотрим предметную область.

Предметная область при проектировании базы данных – Вуз

Подсистема – студенческая картотека.

Автоматизации подлежит задача хранения и компоновки данных о студентах.

Множество атрибутов предметной области представлены в таблице1.1

 

Таблица 1.1

Множество атрибутов предметной области

№ п/п

Наименование атрибута

Идентификатор

1

2

3

1

ФИО студента

ФИО

2

Дата рождения

ДАТА

3

Национальность

НАЦ

4

Факультет

ФАКУЛ

5

Специальность

СПЕЦ

6

Курс

КУРС

7

Группа

ГРУПП

8

Домашний адрес

АДР

9

Номер договора по оплате за обучение

НОМ_ДОГ

 


Продолжение таблицы 1.1

1

2

3

10

Форма оплаты

ФОРМА_ОПЛ

11

Сумма оплаты

СУММА

12

Семейное положение

СЕМ

13

Наличие льготы

ЛЬГОТ

14

Вид льготы

ВИД_ЛЬГОТ

15

Необходимо ли общежитие

ОБЩЕЖ

16

Срок проживания

СРОК_ПРОЖ

17

Дата въезда

ДАТА_ВЪЕЗД

18

Номер комнаты

НОМ_КОМ

19

Номер студенческого билета

БИЛЕТ

 

 

Характеристика ПО

 

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

 

 

Ограничения и допущения ПО

 

Относительно данной предметной области можно применить следующие допущения и ограничения:

1. Номер студенческого билета однозначно определяет конкретного студента, является уникальным, состоит из пяти символов, включает в себя код группы и номер студента

2. Номер договора по оплате за обучение также однозначно определяет студента и является уникальным, состоит из пяти символов, включает в себя буквенный код специальности и трехзначный номер договора

3. Наличие льготы определяется:

А) первичной суммой оплаты

Б) результатами аттестаций летней и зимней сессий

Г) семейным положением

4. Общежитие предоставляется только иногородним студентам и в исключительных ситуациях

 

Построение ER-диаграммы ПО

 

Для разработки ER-диаграммы необходимо выделить объекты ПО и их атрибутивный состав. На основе перечня атрибутов выделим следующие сущности с атрибутами:

1.        Студент (ФИО, Дата, Нац, Адр, Билет)

2.        Специальность (Факул, Спец, Курс, Групп, Билет, Ном_дог)

3.        Оплата (Ном_дог, Форма_опл, Сумма, Льгот, Вид_льгот)

4.        Общежитие (Билет, Общеж, Срок_прож, Дата_въезд, Ном_ком)

Между полученными сущностями рассмотрим следующие связи:

1.    Студент – Специальность ® обучается

2.    Специальность – Оплата ® оплачивается

3.    Общежитие – Студент ® выделяется

В результате получим ER-диаграмму, изображенную на рисунке 1.1

 

Рисунок 1.1 – ER-диаграмма ПО

 

Этап логического проектирования

 

На данном этапе создается модель пригодная для реализации средствами какой- либо конкретной СУБД. Существует большое разнообразие сложных типов данных, но из них можно выделить наиболее общие называемые моделями данных.

 

 

Выбор модели данных

 

Модель данных – это  форматы данных и состав операций, выполняемых над ними.

Существует иерархическая сетевая и реляционная модель данных.

Любая модель содержит 3 основных компонента:

1. структура данных – описывают точку зрения пользователя на представление данных.

2. набор допустимых операций, выполняемых на структуре данных.

3. ограничение целостности – механизм поддержания соответствия данных ПО на основе формально описанных данных.

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

Структура данных:

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

Строки таблиц соответствуют картежам, каждая строка представляет собой описание одного объекта реального мира, характеристики которого содержатся в столбцах. Столбцы называют атрибутами. Атрибут, значения которого однозначно идентифицирует картеж называется ключевым. Если картеж идентифицируется только сцеплением значений нескольких атрибутов, то отношение имеет составной ключ. Один из ключей всегда является первичным и его значение не могут обновляться, все остальные ключи называются возможными ключами. Для отражения ассоциаций между картежами разных отношений используется дублирование ключей.

Ограничение целостности:

Здесь определены 2 базовых требования:

1 Целостность ссылок – сложные объекты представляются в РМД в виде картежей нескольких нормализованных отношений, которые связаны между собой. При этом связи между данными отношениями описываются в терминах функциональных зависимостей(ФЗ). Для отражения ФЗ между картежами разных отношений используется дублирование первичного ключа родительского отношения в дочернее. Атрибуты представляющие собой копии ключей родительских отношений наз. внешними ключами. Требования целостности по ссылкам состоит в следующем: для каждого значения каждого ключа появляющегося в дочернем отношении в родительском отношении должен найтись картеж с таким же значением первичного ключа.

2 Целостность сущностей- требование целостности сущности заключается в следующем: каждый картеж любого отношения должен отличатся от другого картежа этого отношения (т.е. любое отношение должно обладать первичным ключом.) если данное требование не соблюдается, то в БД может храниться противоречивая информация об одном и том же объекте.

Информационные объекты данной БД можно представить в виде следующих отношений с соответствующими атрибутами и ключами:

1.    Студент

Билет

ФИО

Дата

Нац

Адр

 

2.    Специальность

Спец

Факул

Курс

Групп

Билет

Ном_дог

 

3.    Оплата

Ном_дог

Форма_опл

Сумма

Льгот

Вид_льгот

Сем

 

4.    Общежитие

Билет

Общеж

Срок_прож

Дата_въезд

Ном_ком

 

 

Нормализация отношений

 

Нормализацией называется обратимый пошаговый процесс декомпозиции отношений на более мелкие с целью устранения нежелательных ФЗ.

ФЗ определяют семантические связи между атрибутами информации, понятие ФЗ распространяется на 2 и более атрибута. Если в любой момент времени каждому значению атрибута А соответствует не более чем 1 значение атрибута Б то говорят, что Б функционально зависит от А или А функционально определяет Б.

Полная ФЗ.

ФЗ называется полной, если атрибут Б не зависит функционально от любого точного подмножества А, т.е. существует ФЗ типа А+С®Б и нет ФЗ А®Б или С®Б.

Транзитивная ФЗ.

ФЗ называется транзитивной если существует такой атрибут С что имеется ФЗ А®С и С®Б и соответствует ФЗ С®А.

Два и более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.

Состав атрибутов отношения должен удовлетворять 2 основным требованиям:

1.             между атрибутами не должно быть нежелательных ФЗ.

2.             группировка атрибутов должна обеспечивать минимальное дублирование данных, а также обработку и обновление их без проблем.

Удовлетворение данных требований достигается нормализацией отношений.

В представленном проекте отношения находятся в третьей нормальной форме т.к. все неключевые атрибуты зависят от первичного ключа, других ФЗ нет.

 

 

Даталогическая модель данных

 

Следующим этапом разработки базы данных является создание даталогической модели данных, в которой отражаем атрибутивный состав, указываем тип данных и количество символов выделяемых под каждый атрибут отношения БД. Рассмотрим модель на каждом отношении БД.


1. Студент

 

 Атрибут

Тип данных

Количество символов

ФИО

Текстовый

50

Дата

Дата/Время

 

Нац

Текстовый

25

Адр

Текстовый

50

Билет

Текстовый

5

 

2.              Специальность

 

Атрибут

Тип данных

Количество символов

Факул

Текстовый

50

Спец

Текстовый

7

Курс

Текстовый

1

Групп

Текстовый

5

Билет

Текстовый

5

Ном_дог

Текстовый

5

 

3.              Оплата

 

Атрибут

Тип данных

Количество символов

Ном_дог

Текстовый

5

Форма_опл

Текстовый

20

Сумма

Числовой

 

Льгот

Текстовый

3

Вид_льгот

Текстовый

50

 

4.              Общежитие

 

Атрибут

Тип данных

Количество символов

Билет

Текстовый

5

Общеж

Текстовый

3

Дата_въезд

Дата/Время

 

Срок_прож

Текстовый

15

Ном_ком

Текстовый

4

 

Следующим этапом разработки базы данных является создание логической модели данных в виде схем отношений. Информационные объекты можно представить в виде следующих отношений с соответствующими атрибутами и ключами.

 

Реляционная модель данных имеет вид представленный на рисунке1.2


Рисунок 1.2 – Реляционная модель данных

 

 

Задания:

 

1.      Изучив заданную тему выберите по варианту задание для самостоятельной работы (см. таблицу1.2)

2.      Разработайте этап концептуального проектирования выбранной базы данных

3.       Составьте описание предметной области: характеристика ПО, Ограничения и допущения ПО.

4.      Постройте ER-диаграммы ПО

5.      Разработайте этап логического проектирования: выбор модели данных, нормализация отношений, даталогическая модель данных, реляционная модель данных

 

Таблица 1.2

№ варианта

 

Темы баз данных

1

Прокат видео-аудио кассет

2

Тепло-энерго центр Усть-Каменогорска

3

База данных Казахтелеком

4

Библиотека им.Пушкина

5

Система работы ГАИ Усть-Каменогорска

6

Корпорация продуктовых магазинов

7

Корпорация высших учебных заведений Усть-Каменогорска

8

Система профессорско-преподавательского состава ВКГУ

9

Школы Усть-Каменогорска

10

Автосалон «БИПЭК»

11

СТО «БИПЭК»

12

Корпорация салонов красоты

13

Амбулаторный центр Усть-Каменогорска

14

Сеть городских больниц Усть-Каменогорска

15

Сеть магазинов бытовой техники

 

Лабораторная работа №2. Компоненты для обработки записей баз данных. Получение доступа к данным механизмом BDE.

 

Цель работы: Просмотр записей в виде таблицы, в виде разработанной формы. Рассмотрение различных компонент для разработки формы просмотра записей. Получение доступа к данным механизмом BDE.

 

1)      Компонент DВGrid

Из вкладки DataControls установить на форме DВGrid и указать в свойстве DataSource источник данных.

2)      Компонент DBNavigator

Выполняет навигацию по записям. Он состоит из нескольких кнопок:

1.      First –  переход на первую запись

2.      Prior – переход на предыдущую запись

3.      Next – переход на следующую запись

4.      Last – переход на последнюю запись

5.      Insert – вставить новую запись в указанное место

6.      Delete – удалить текущуюзапись, если в свойстве ConfirmDelete =True, то выводится предупреждение об удалении.

7.      Edit – редактировать текущую запись

8.      Post – сохранить изменения в таблице

9.      Cansel – отменить действия

10.  Refresh – обновить записи в таблице.

 

3)      Компонент надписи DBText:

Аналог компонента Tlabel, дает возможность увидеть записи таблицы БД или создать надпись для другого компонента. В свойстве DataSource указывается источник данных. В свойстве DataField указывается имя поля

4) Компонент редактирования  DBEdit:

Дает возможность увидеть записи таблицы БД и заодно редактировать записи. Свойство ReadOnly=True не дает право редактирования.

4)      Компонент изображения DBImage:

Выводит на форме графические объекты, сохраненные в базе данных. Если свойство AutoDisplay=True, то изображение выводится автоматически. Если AutoDisplay=False, то нужно применить метод LoadMemo.

5)      Компонент раскрывающегося списка данных DBComboBox:

Некоторые поля принимают значения из некоторого списка. Свойство ItemIndex нумерует элементы списка, свойство Items определяет значения списка. Свойство Style определяет стиль списка

6)      Флажок данных DBCheckBox:

Применяется когда некоторые поля принимают одно из двух логических значений. Например Есть ли дети (флажок- есть, нет флажка – нет детей).

7)      Группа переключателей DBRadioGroup:

Помогает создать список независимых переключателей в компактном виде. Свойство Items определяет надписи независимых переключателей. Например Пол (Муж, Жен). в свойстве DataSource указывается источник данных. В свойстве DataField указывается имя поля.

 

Вывод данных в табличном виде

 

            Данные из таблицы можно вывести в виде таблицы или в виде разработанной формы. Рассмотрим пример.

А) Данные таблицы “Wares” нужно вывести в табличном виде.

1. Из вкладки DataAccess вставим Ttable и указываем свойтсва:

1)      DataBaseNameFirma1.

2)      TableName – Wares.db.

3)      Active  - True.

2. Из вкладки DataAccess вставим DataSource и указываем свойство:

1)      DataSet  - Table1.

3. Из вкладки DataControl вставим DBGrid и указываем свойство

1)      DataSource -  DataSourse1.

В) Данные таблицы Wares” нужно вывести в виде формы.

1. На форме устанавливаем компоненты Ttable, DBataSource

Указываем основные свойства этих компонентов, как в пункте А).

2. Из вкладки DataControl вставим вместо компонента DBGrid1 компоненты DBEdit (9 экземпляров), один экземпляр DBText, один экземпляр DBMemo и указываем свойства:

1)      DataSource - DataSource1.

2)      В свойстве DataField каждого компонента DBEdit нужно указать имена соответствующих полей для: Name, Adress, ClientsName, DateOfBirth, Age и т.д.

3)      Чтобы определить возраст человека, создадим вычисляемое поле в компонент  DBText.

4)      Для того чтобы дать полную, подробную  характеристику каждого человека DBMemo -  Description .

  1. В свойство Caption компонента Tlabel напишем подписи для полей базы данных.
  2. Чтобы создать список независимых переключателей вставим DBRadioGroup и подпишем его Пол клиента ”. В свойстве  DataSource – источник данных, DataField – имя поля, которое принимает одно из двух значений, в свойстве Items напишем список значений: жен, муж.
  1. DBComboBox компонентінің тақырыбын семьялық ағдайы деп береміз.  DataSource DataField қасиеттерінен басқа Items  қасиеті жолында “семьясы бар, бойдақ, ажырасқан” мәндерін енгіземіз.
  2. DBCheckBox компонентінің  Caption қасиетіне “Балалары” деп жазамыз. Алдыңғы мысалдан белгілі  DataSource, DataField қасиеттерін көрсетеміз.
  3. DataControls панелінен  DBNavigator компонентін орналастырып, қасиеттерін береміз:

1)       DataSource - DataSource1 деп

2)       Hints  - көмекші хабарлама шығару массиві, орысшаға аударуға болады.

3)      ShowHint – True деп

  1.  DataControls панелінен DBImage  компонентін орналастырып қасиеттерін береміз:

1)      Stretch  - True деп

2)      Dialogs панелінен OpenPictureDialog1 компонентін қалыпқа әкелеміз.

3)       DBImage1 компонентін белгілеп,  OnDblClick оқиғасына программалық код жазамыз:

Begin

            If OpenPictureDialog1.Execute then begin

            Table2.Edit;

            DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

            Table1.Post;

End;

 

Задания:

  1. Используя технологию BDE вывести записи таблицы БД в пользовательском виде используя компоненты Дельфи
  2. Вывести записи таблиц БД  в табличном виде
  3. Сохранить таблицу в своей папке

Лабораторная работа №3: Применение технологии ADO

Цель работы: Получение доступа к данным с помощью ADO технологии

 

Создай новый проект. Теперь брось на форму компонент ADOConnection с закладки ADO палитры компонентов. Теперь настроим соединение с сервером, которое должно быть прописано в свойстве ConnectionString. Для этого надо дважды щёлкнуть по строке ConnectionString и перед нами открывается окно. Здесь перед нами стоит выбор:

1. Использовать специальный файл (Use Data Link File);

2. Использовать строку подключения (Use Connection String).

Второе, на мой взгляд, более предпочтительно, поэтому я покажу, как создать строку подключения. Для этого щёлкаем кнопку Build и перед нами открываеться ещё одно окно. На закладке Provider перечислены все доступные ADO драйверы доступа к базам данных. Если какого-то драйвера нет, то можно попробовать выделенный по умолчанию «Microsoft OLE DB Provider for ODBC Drivers». Этот драйвер позволяет получить доступ к базе данных через ODBC драйвер, которые есть к большинству существующих баз данных (единственное, он может быть не установленным на твоём компьютере). В нашем случае, для доступа к базам данных MS Access используется драйвер «Microsoft Jet OLE DB Provider». Такой драйвер обязательно устанавливается на машину вместе с MS Office, а в последних версиях Windows он устанавливается по умолчанию. На моей машине установлено сразу две версии этого драйвера, поэтому я выберу более новый - «Microsoft Jet 4.0 OLE DB Provider». После этого нажимаем кнопку Next, или переходим на закладку «Connection». Вид закладки Connection зависит от выбранного драйвера. Первым делом, в этом окне надо ввести имя (если надо то и путь) базы данных в строку «Select or enter a database name». Если база данных будет располагаться в той же директории, что и запускной файл, то путь указывать не надо. Я вообще советую хранить базы в одной директории с запускными файлами. Если ты будешь держать файлы отдельно от запускного, то тебе придётся указывать полный путь, а это может вызвать проблемы при переносе программы на другой компьютер. Ведь там программа будет искать базу по казанному пути, который может измениться. Если хочешь держать файлы в другой директории, то указывай относительный путь относительно текущей директории. Чтобы легче было выбрать файл базы данных необходимо щёлкнуть по кнопке с точками справа от строки ввода. Помимо этого нам надо заполнить следующие поля:

1. Имя пользователя (User name), можно оставить по умолчанию, если не заданно иное при создании базы в MS Access;

2. Пароль (Password) – если база имеет пароль, то его необходимо указать;

3. Пустой пароль (Blank password) – если пароль не нужен, то здесь желательно поставить галочку;

4. Позволять сохранять пароль (Allow saving password). Если здесь поставить галочку, то пароль может быть сохранён.

Как только выберешь базу данных, нажми кнопку Test Connection, чтобы протестировать соединение. Если всё указано правильно, то ты должен увидеть сообщение «Test connection succeeded». Всё, можно нажать ОК, чтобы закрыть окно создания строки подключения и ещё раз ОК, чтобы закрыть окно редактора строки подключения. Теперь в свойствах компонента ADOConnection отключи свойство LoginPrompt, выставив его в False. Это нужно для того, чтобы при каждом обращении к базе нас не грузили окном ввода пароля. А теперь выставим свойство Connected в True, чтобы произошло соединение с базой. На этом соединение можно считать оконченным. Теперь нам надо получить доступ к созданной нами таблице «Справочник». Для этого брось на форму компонент ADOTable с закладки ADO палитры компонентов. Сразу измени его свойство Name на BookName.

- TADOTable. В этом компоненте тоже есть свойство ConnectionString и его так же можно настраивать. Почему «можно»? Да потому что, чтобы этого не делать мы поставили на форму компонент ADOConnection. Теперь мы можем указать у нашего компонента BookName в свойстве Connection, созданный нами компонент соединения с базой данных. Щёлкни по выпадающему списку в свойстве Connection и выбери там единственный пункт ADOConnection1. Теперь нам не надо заполнять свойство ConnectionString Теперь в свойстве TableName нужно выбрать имя нашей таблицы (Справочник). Всё, таблица и соединение указаны, можно подключатся. Для этого выставь свойство Active в true.

- TDataSource

Для отображения данных из таблицы надо ещё установить на форму компонент DataSource с закладки Data Access палитры компонентов. Теперь этому компоненту надо указать, какую именно таблицу он должен отображать. Для этого в свойстве DataSet нужно из выпадающего списка выбрать нашу таблицу BookTable.

- DBGrid

Всё!!! Все приготовления готовы, можно приступать к реальному отображению данных. Самый простой способ отобразить таблицу – установить компонент DBGrid. Это компонент-сетка, которая может отображать данные в виде таблицы. В этом же компоненте можно добавлять, удалять и редактировать строки нашей таблицы. И последний этап создания нашего приложения – связывание компонента сетки с компонентом отображения таблицы. Для этого в свойстве DataSuorce компонента DBGrid

нужно указать созданный нами компонент DataSource1. Вот до какой степени Delphi упрощает процесс программирования баз данных, что даже программировать ничего не надо. Попробуй запустить этот пример и создать несколько строк, отредактировать уже существующие и удалить что-нибудь. Для вставки строки используй клавишу Ins, а для удаления Ctrl+Del.

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

Компонент TADOTable имеет множество полезных свойств. Большинство из них просты в использовании, поэтому чтобы не писать множество примеров на их использование, я здесь кратко опишу основные из них. В дальнейшем с какими-то мы познакомимся на практике, а какие-то останутся для тебя как дополнительная информация к размышлению.

MasterSource - в этом свойстве указывается главная, по отношению к текущей таблица. Мы рассмотрим это свойство достаточно подробно и на практике, когда будем рассматривать связанные таблицы.

ReadOnly – если это свойство равно true, то таблицу нельзя редактировать. В этом случае данные только отображаются. Обязательно устанавливай это свойство для тех таблиц, где данные не должны изменяться и пользователь не должен вносить в них изменения.

TableDirect – это свойство отображает какой будет происходить доступ к таблице. Если этот параметр равен true то будет происходить прямой доступ к таблице по имени. Если false то незаметно для тебя будет происходить специальный SQL запрос к базе данных (о SQL запросах читай ниже). Не все базы данных позволяют работать через прямой доступ, поэтому это свойство по умолчанию равно false.

TableName – имя таблицы, данные которой мы хотим обрабатывать.

CacheSize – размер кэш памяти. Если здесь установить число 50, то при первом подключении к таблице компонент выберет первые 50 строк и поместит их в локальной памяти, что ускорит доступ к ним.

CanModify – свойство похоже на ReadOnly и указывает на возможность редактирование данных таблицы.

CommandTimeout – время ожидания выполнения команды. Когда компонент направляет команду базе данных, то он запускает таймер ожидания, по истечению которого (если команда не выполнилась) происходит сообщение об ошибке.

Connection – здесь указывается компонент TADOConnection, через который происходит подключение.

ConnectionString – строка подключения к базе данных.

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

CursorType – тип курсора. Тут возможен один из следующих вариантов:

 - ctUnspecified расположение курсора не указано

 - ctOpenForwardOnly – курсор может двигаться только вперёд.

- ctKeyset при этом курсоре изменения внесённые одним пользователем не видны остальным пользователям подключённым к этой таблице. Если с одной таблицей работают одновременно несколько пользователей, то при таком курсоре для отображения изменений других пользователей нужно отключиться от базы и подключиться к ней снова.

- ctDynamic динамический курсор, при котором изменения одного пользователя видят все остальные.

- ctStatic статический курсор. Изменения одного пользователя не видны остальным Внимание!!! Если курсор расположен на клиенте, то можно использовать только статический курсор. Не все типы курсоров могут работать с определённой базой данных. Одна база данных может поддерживать один тип, а другая может поддерживать всё.

Filter – строка фильтра.

Filtered – является ли таблица фильтруемой. Если здесь установить false то строка фильтра (filter) игнорируется.

IndexFieldNames – имя индексированной колонки. Индексы используются для сортировки данных или для связи между таблицами.

RecNo - номер текущей выделенной строки.

RecordCount – количество строк в таблице.

Sort - строка, в которой указывается тип сортировки. Например, для сортировки по полю «Телефон» сюда нужно записать строку: ADOQuery1.Sort := 'Телефон ASC'. Оператор ASC говорит о том, что надо сортировать в порядке возрастания. Оператор DESC говорит о сортировании в порядке убывания.

Active – если это свойство равно true, то таблица открыта.

AggFields – здесь хранятся все агрегатные поля.

AutoCalcFields – если здесь true, то надо автоматически пересчитывать поля.

Bof – на это свойство влиять нельзя, но если оно равно true, то мы находимся в начале файла.

Bookmark - здесь находиться текущая закладка.

Eof - на это свойство влиять нельзя, но если оно равно true, то мы находимся в конце файла.

FieldCount – здесь хранится количество полей в таблице.

Fields – через это поле можно получить доступ к значениям полей. Допустим, что тебе надо узнать, какое значение храниться в 4-м поле. Для этого нужно написать Table.Fields.Fields[4].AsString. Метод AsString говорит о том, что нам надо получить значение в виде строки. Это простой метод, но я его не люблю использовать. В течении всей книги я буду обращаться к полям по именам.

FieldValues – с помощью этого свойства можно легко получить доступ к любому значению указанного поля. Имя поля нужно указывать в квадратных скобках. Например, Table1.FieldValues[‘Телефон’]:='3346598';

FilterOption – настройки фильтра. Здесь можно указывать следующие параметры:

- foCaseInsensitive фильтр будет не чувствителен к регистру.

- foNoPartialCompare если стоит этот параметр, то сравнения будут происходить с точной копией указанного значения в фильтре. Если параметр не казан, то в фильтр будут попадать строки содержащие значение в фильтре, но не являющиеся его точной копией. Например, если в фильтре указано показывать слова «са», то в фильтр попадут все слова начинающиеся на «са» (самолёт, самокат).

Modified – если это свойство равно true, то в таблице были внесены изменения.

 

Методы компонента TADOTable

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

BookmarkValid – этот метод проверяет правильность закладки. В качестве единственного параметра нужно указать закладку типа TBookmark и если она является действительной, то результатом будет true.

CancelUpdates - отменить обновления сохранённые в кэш памяти

CompareBookmarks.- сравнение двух закладок. У метода два параметра типа TBookmark. Эти две закладки сравниваются. Если закладки равны, то результат равен нулю. Если первая меньше второй, то результат будет –1. Если первая больше второй, то результат равен единице.

DeleteRecords – удалить записи. У метода один параметр – какие записи удалять.  Ты можешь указать следующие значения в качестве параметра:

- arCurrent удалить только текущую запись.

- arFiltered удалить записи удовлетворяющие установленному фильтру.

- arAll – все записи.

- arAllChapters удалить записи во всех разделах ADO.

Append – добавить новую запись в конец таблицы.

Cancel – отменить изменения текущей строки, если изменения ещё не были сохранены с помощью метода Post.

Close – закрыть таблицу.

Delete – удалить текущую строку.

Edit – перейти в режим редактирования. После этого можно изменять значения  полей

FieldByName – найти поле по имени. В качестве единственного параметра нужно указать имя поля виде строки и в результате получаем ссылку на поле в виде объекта TField

First – перейти на первую строку в таблице.

Insert – вставить новую строку в таблицу.

IsEmpty – если метод вернёт true то в таблице нет записей.

Last - перейти на последнюю запись в таблице.

Next – перейти на следующую запись.

Post – принять все изменения.

Prior - двигаться на предыдущую запись в таблице.

Refresh – обновить информацию о данных.

UpdateRecord – обновить текущую запись.

 

Задания:

 

  1. Используя технологию ADO  вывести записи таблиц БД в пользовательском виде используя компоненты Дельфи
  2. Вывести записи таблиц БД  в табличном виде
  3. Сохранить таблицу в своей папке

 

Лабораторная работа №4: Запросы и SQL-конструкции

Цель работы: Создание запросов разного типа. Применение SQL-конструкции

 

1.      Запросы на выборку – выбираем по условию некоторые поля из таблицы, для того чтобы их включить в таблицу запроса.

Например: Пусть имеется таблица МЕN с атрибутами Fio-ФИО, Adr-адрес, Bilet-номер студенческого билета, Sempol-семейное положение, Datar-дата рождения, Notes-характеристика (memo-поле).

1.1. Нужен ФИО и адрес проживающих по улицам "ttt", "ppp"  –

SELECT Fio, Adr FROM MEN WHERE Adr in("ttt", "ppp")

1.2. Нужен ФИО и адрес семейных студентов -

SELECT Fio, Adr FROM MEN WHERE Sempol IN("женат", "замужем")

1.3. Нужен номер студенческого билета, ФИО и адрес, номер билета у студента=104

SELECT Bilet, Fio, Adr FROM MEN WHERE bilet=104

1.4. Нужен номер студенческого билета, ФИО и адрес, номер билета соответствует диапазону от 101 до 103 (тип поля должен быть обязательно целочисленным)

SELECT Bilet, Fio, Adr FROM MEN WHERE bilet between 101 and 103

2.      Запрос на выборку из связанных таблиц – выбираются поля из двух и более таблиц по условию.

Например: пусть кроме таблицы МЕN существует таблица МЕN1 с атрибутами Bilet - номер студенческого билета, Kurs-курс, Spez - специальность, Stip – стипендия.

2.1.Нужен  ФИО, курс, стипендия, спеуиальности – 050602.

SELECT men.Fio, men1.kurs,men1.stip,  men1.spez

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and spez="050602"

2.2.Нужен  ФИО, курс, получающих стипендию

SELECT men.Fio, men1.kurs, men1.stip

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and stip<>0

2.3. Нужен ФИО, дата рождения, специальность семейных студентов

SELECT men.Fio, men.Datar,men1.spez

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and Sempol in("jenat", "za muz")

3.      Выборка с вычисляемыми полями. Вычисляемые поля в базе данных не сохраняются, но дают какой то результат вычислении и результат записывается в новое поле вне таблицы.

3.1.Нужен ФИО, стипендия, и надбавка к стипендии в размере 20% семейным студентам.

SELECT men.Fio, men1.stip, men1.stip*20/100

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and Sempol in("jenat", "za muz")

 

4.      Применение стандартных функции в запросе. Существуют следующие стандартные функции:

Count() – считает записи по условию

Avg() – вычисляет среднее значение числовых данных

Max() – находит максимум

Min() – находит минимум

Sum() – вычисляет сумму числовыз данных

            При применении этих функции в запросе не выводятся поля таблицы, так как вычисление ведется по одному определенному полю, это поле должен быть аргументом функции.

 

4.1.Определить число студентов получающих стипендию

SELECT count(stip)

FROM men1

WHERE stip<>0

 

4.2. Определить сумму стипендии на всю группу

SELECT sum(men1.stip)

FROM MEN, men1

WHERE men.Bilet=men1.Bilet

 

4.3.Определить получающего максимальную стипендию студентов

SELECT max(men1.stip)

FROM MEN, men1

WHERE men.Bilet=men1.Bilet

 

5.      Применение группировки в запросе. Группировка применяется, когда требуется в запросе увидеть основные данные студентов, а также выполнять вычисления над сгруппированными записями.

5.1. Нужен ФИО, стипендия которых уменьшилось на 50%

SELECT men.fio,sum(stip)/2

FROM men, men1

WHERE men.Bilet=Men1.Bilet and stip<>0

Group By fio

5.2. Допустим имеется таблица о продаже менеджерами товаров по месяцам.

Товары(Клиент, сентябрь, октябрь, ноябрь).

Чтобы получить отчет для одного клиента за сентябрь даем команду:

SELECT Klient, sum(sent)

FROM tovar1

Group By klient

 

6.      Фильтрация данных. Фильтр применяется втех случаях, когда требуется кое-какие записи временно скрыть  по условию.

6.1.Нужен список на опеределенную букву, остальные скрываем временно:

Выделяем компонент Table1, (если вы хотите фильтровать запрос, то - Query1), устанавливаем следующие свойства:

Filter Klient='e*'

Filtered=True

Чтобы снять фильтр, в свойстве Filter удаляем Klient='e*' и нажимаем  Enter.

 

Задания:

  1. Создать запрос на выборку
  2. Создать запрос с условием
  3. Создать фильтр по критериям

 

 

 

Лабораторная работа №5: Запросы и оформление запросов кнопками, доступ к полям и типам данных

Цель работы: Оформление, активизация,  запроса, получение доступа с помощью кнопок

 

1. Создайте форму, как показано на рисунке:

 

 

2. Для компонент  BitButton1 и  BitButton2  установите свойство Glyph ... откроется окно, нажмите Load, в окне выбора файла откройте путьc:Program files\common files\ borlandChared\Images\Buttons, выберите два файла arrow1d.bmp для BitButton1, arrow1u.bmp для BitButton2. Для Button1 наберите заголовок «Подключиться», эта кнопка служит для того, чтобы при нажатии этой кнопки активизировалась таблица  запроса и по записям можно было перемещаться без DBNavigatora. Для Button2 наберите заголовок «Выход».

           

3. Наберите следующий код для BitButton1:

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Form1.Query1.Next;

CheckPosition;

end;

            Эта программа выполняет переход вниз от записи к записи. Тогда BitBtn2 становится неактивной, она активизируется если перейдете на самую последнюю запись

 

4. Наберите следующий код для BitButton2:

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Form1.Query1.Prior;

CheckPosition;

end;

            Эта программа выполняет переход вверх от записи к записи. Тогда BitBtn1 становится неактивной, она активизируется если перейдете на самую первую запись.

 

5. Вставьте имя процедуры между

private

   { Private declarations }

    Procedure CheckPosition;

  public

    { Public declarations }

           

6. Напишите для него код:

Procedure TForm1.CheckPosition;

    begin

    if Form1.Query1.Eof then Form1.BitBtn1.Enabled:=false else

    Form1.BitBtn1.Enabled:=true;

    if Form1.Query1.Bof then Form1.BitBtn2.Enabled:=false else

    Form1.BitBtn2.Enabled:=true;

    end;

 

Записи из запроса можно вывести даже в компонент Label. Для этого на форму установите два Label. Добавьте  эти строки вконец процедуры:

    Label1.Caption:=Form1.Query1.Fields[1].AsString;

    Label2.Caption:=Form1.Query1.FieldList[2].AsString;

 

7. Для кнопки «Подключиться» наберите программу:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Query1.Active:=true;

Form1.Button1.Enabled:=false;

CheckPosition;

Button3.Enabled:=True;

end;

 

8. Для Button2 наберите программу:

 

procedure TForm1.Button2Click(Sender: TObject);

begin

if Form1.Query1.Active then query1.Close;

Application.Terminate;

end;

 

9. Вставьте еще одну кнопку Button3, для него наберите программу:

 

procedure TForm1.Button3Click(Sender: TObject);

begin

Form2.ShowModal;

end;

            Выполняет переход на вторую созданную форму.

 

10.Создайте форму Form2, выполнив команду  FileNewForm.

 

 

 

Окно формы2

 

Установите следующие свойства:

Caption = Поля набора данных

Position= poScreenCenter

BorderStyle= bsDialog

 

11. Вставьте одну кнопку Button1. Установите следующие свойства:

Caption=Выход

ModalResult=mrOK

 

12. Вставьте два экземпляра ListBox1, ListBox2.

 

Для ListBox1 наберите программу:

 

procedure TForm2.ListBox1Click(Sender: TObject);

var FKind:string;

    CField:TField;

begin

    If ListBox1.ItemIndex=-1 then exit;

    ListBox2.Items.Clear;

 

    CField:=Form1.query1.FieldByName(ListBox1.Items[ListBox1.ItemIndex]);

 

    ListBox2.Items.Add('Имя поля-'+CField.DisplayName);

    ListBox2.Items.Add('Значение поля- '+CField.DisplayText);

    CASE CField.FieldKind of

    fkData: FKind:='Поле таблицы БД';

    fkCalculated: FKind:='Расчетное';

    fkLookUp: FKind:='поле поиска';

    fkInternalCalc: FKind:='расчетное с хранением результатов в наборе';

    fkAggregate: FKind:='аггрегирование';

    else

    FKind:='наизвестный тип поля';

    end;

    ListBox2.Items.Add('Вид - '+FKind);

    ListBox2.Items.Add('Тип поля - '+FieldTypeNames[CField.DataType]);

    ListBox2.Items.Add('Размер (байт) -'+IntToStr(CField.DataSize));

    ListBox2.Items.Add('Номер -'+ IntToStr(CField.FieldNo));

    if CField.CanModify then

ListBox2.Items.Add('редактируемое') else

ListBox2.Items.Add('нередактируемое');

End;

 

13. Находясь на форме2 перейдите на вкладку Events окна Object Inspector. Найдите в списке методов FormShow и щелкните дважды по нему, откроется обработчик событий. Для него наберите код:

 

procedure TForm2.FormShow(Sender: TObject);

var i:integer;

begin

Form2.ListBox1.Items.Clear;

Form2.ListBox2.Items.Clear;

for i:=0 to Form1.Query1.Fieldcount-1 do

Form2.ListBox1.Items.Add(Form1.query1.fields[i].fieldName);

end;

            Запустите программу и просмотрите результат

 

 

 

Лабораторная работа №6: Ввод данных в таблицу запросов через форму,

Связь между формами

Цель работы: Написать программу внесения изменений в запрос через форму и сохранения изменений

 

            1. Создайте форму, как показано на рисунке:

 

            2. Создайте верхнее меню ФАЙЛ(подменю: Переход на форму3, Переход на форму2).

           

            3. Создайте обработчик событий для создания формы:

 

procedure TForm1.FormCreate(Sender: TObject);

var otd:string;

begin

otd:='Все';

form1.Caption:='Данные о студентах ФФМТ - Всего '+IntToStr(Query1.RecordCount)+'-студентов'

end;

 

            4. Создайте обработчик событий для подменю «Переход на форму3»:

 

procedure TForm1.N31Click(Sender: TObject);

begin

Form3.Show;

form1.Enabled:=false;

end;

            5. Создайте обработчик событий для подменю «Переход на форму2»:

 

procedure TForm1.N21Click(Sender: TObject);

begin

Form2.ShowModal;

form3.Enabled:=false;

form1.Enabled:=false;

end;

 

6. Создайте обработчик событий для кнопки «Выход»:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Close;

end;

 

7. Создайте форм2:

Из вкладки Win32вставьте компонент  MonthCalendar. Создайте кнопки «Внести в базу», чтобы дата рождения студентов вводились из календаря, «Переход на форму3»

Для MonthCalendar установите свойство Date (нужно указать календарь какого года вам нужен);

           

            8. Создайте код для TForm2.FormCreate

 

procedure TForm2.FormCreate(Sender: TObject);

begin

MonthCalendar1.Date:=Date;

end;

            9. Создайте код для  TForm2.Button1Click

procedure TForm2.Button1Click(Sender: TObject);

begin

Form3.Ed_god_rozh.Text:=datetostr(form2.MonthCalendar1.Date);

form2.Hide;

Form1.Show;

form1.Enabled:=true;

end;

 

            10. Создайте код для TForm2.Button2Click

 

procedure TForm2.Button2Click(Sender: TObject);

begin

form3.Show;

form3.Enabled:=true;

end;

 

            11. Создайте форму3:

 

12. Установите 6 экземпляров DBEdit, измените свойство Name для каждого компонента соответственно:

Ed_Fio, Ed_Adres, Ed_Bilet, Ed_God_rozh,  Ed_Tel, Ed_spez

 

13. Поставьте SpeedButton1 и укажите Caption …

 

Напишите для него код:

procedure TForm3.SpeedButton1Click(Sender: TObject);

begin

Form2.Show;

end;

 

14. Поставьте ComboBox1 и укажите свойства:

Name - CB_Sem_pol

Text  - выбрать

Items

замужем

не замужем

женат

холост

           

            15. Поставьте CheckBox1 и укажите для него свойство:

Name CB_child

Caption Есть ли дети

           

16. Поставьте из вкладки Standart компонент  Panel и укажите свойство:

Align alCustom

            Поставьте срех панели три кнопки «ОК», «Отмена», «Договор (на печть)».

           

            17. Создайте код для «ОК»

 

 

procedure TForm3.Button2Click(Sender: TObject);

begin

if (CB_Sem_pol.Text<>'выбрать') then

begin

Form1.Table1.Insert;

Form1.Table1['Fio']:=Ed_fio.Text;

Form1.Table1['Adr']:=Ed_adres.Text;

Form1.Table1['Datar']:=Ed_god_rozh.Text;

Form1.Table1['SemPol']:=CB_Sem_pol.Text;

Form1.Table1['Tel']:=Ed_Tel.Text;

Form1.Table1['Spez']:=Ed_spez.Text;

Form1.Table1['Bilet']:=Ed_Bilet.Text;

if CB_child.Checked then Form1.Table1['Child']:=true

else Form1.Table1['Child']:=false;

Form1.Table1.Post;

Form3.Hide;

form1.Enabled:=true;

end else ShowMessage('!!!');

end;

 

18. Создайте код для «Отмена»

 

procedure TForm3.Button3Click(Sender: TObject);

begin

Form3.Hide;

Form1.Show;

form1.Enabled:=true;

end;

 

19. Создайте код для  «Договор (на печть)»

 

procedure TForm3.Button1Click(Sender: TObject);

begin

Form4.QRL_fio.Caption:=Ed_fio.Text;

Form4.QRMemo4.Lines.Clear;

Form4.QRMemo4.Lines.Add('1. Фирма принимает на работу вышесказанного физического лица, в должности "'+Ed_FIO.Text+'" . И объязуется предоставить рабочее место.');

Form4.QRMemo4.Lines.Add('2. Работник обязуется следовать внутренним правилам и порядкам Фирмы.');

Form4.QRM_rab.Lines.Clear;

Form4.QRM_rab.Lines.Add('"Работник"');

Form4.QRM_rab.Lines.Add(Ed_spez.Text);

Form4.QRM_rab.Lines.Add('Адрес: '+Ed_adres.Text);

Form4.QRM_rab.Lines.Add('Телефон: '+Ed_tel.Text);

Form4.QuickRep1.Preview;

end;

 

 

 

Лабораторная работа №7: Организация поиска данных, заполнение мемо-полей, модификация столбцов таблицы  

Цель работы: Написать программу последовательного поиска, заполнение мемо-полей

Создайте форму, как показано на рисунке.

            Для того чтобы заполнить мемо-поле установите свойства:

Для Table1 (DataBaseName, TableName, Active)

Для DataSource1 (DataSet=Table1)

Для DBMemo (DataSource= DataSource1)

Для DBEdit1 (DataSource= DataSource1, DataField=FIO). Аналогично эти же свойства указываются для других DBEdit-компонент.

Для DBGrid (DataSource= DataSource1)

Для DBNavigator (DataSource= DataSource1)

            После этого нужно запустить приложение, и с помощью панели навигатора выделить нужную запись, перейти в мемо-поле «Характеристика студента», заполнить и нажать на панели навигатора кнопку «сохранение».

 

Чтобы организовать поиск данных, установите следующие свойства:

 

Введите следующий программный код для организации поиска?

Для Table1 (DataBaseName, TableName)

Для DataSource1 (DataSet=Query1)

Query1 (DataBaseName, Sql-string  наберите SELECT * FROM STUDENT- для того чтобы в запросе участвовали все поля)

           

 

 

Дважды щелкните Button1, при открытии процедуры наберите функцию поиска в следующем виде:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Query1.Locate('Fio', Edit1.Text, [LoPartialKey, LoCaseInsensitive]);

end;

end.

Параметры [LoPartialKey, LoCaseInsensitive] – означают, что при поиске не учитывается регистр, значения полей для поиска не даются полностью.

Если поиск нужно вести по другим полям, то вместо FIO  укажите другое поле.

           

Если при работе с базой данных вы пользуетесь для простоты просмотра компонент DBGrid, имеется один недостаток – имена полей выводятся на английском, чтобы избавиться от этой проблемы проделайте следующее:

  1. Выделите DBGrid1, нажмите правую кнопку мыши
  2. Выберите команду ColumnsEditor, откроется окно, как показано на рисунке.

 

 

 

  1. Здесь нажмите кнопку Add New – редактировать имя поля.
  2. Выделите 0 – Tcolumn
  3. Перейдите в окно свойств и установите следующие свойтсва:

FieldName – имя поля в таблице

TitleCaption – новое имя поля, Font - шрифт, Aligment - выравнивание 

 

 

После того как изменили имя первого поля, все операции повторяйте для остальных полей.

            В итоге вы должны получить окно, как показано на рисунке:

 

Задания:

 

 

Лабораторная работа №8: Составление отчетов

Цель работы:  Создать отчет с помощью вкладки QReport

Создайте форму4, как показано на рисунке:

 

            Настройте вкладку Qreport. Из этой вкладки вставьте следующие компоненты, чтобы составить бланк договора о приеме на работу студентов:

  1. QuickRep1 – определяет область создания бланка или отчета, по умолчанию отчет создается в формате А4
  2.  TitleBand1 – задает область шапки отчета или договора
  3. Вставьте 7 экземпляров QRMemo

Укажите для них следующие свойства:

QRMemo1 Lines - Усть-Каменогорская компьютерная  фирма, именуемый дальнейшем "Фирма", в лице президента Мадалимов Б., на основании Устава, с одной стороны и

QRMemo2  - Linesс другой стороны, именуемого в дальнейшем "Работник", заключил настоящий договор о нижеследующем:

QRMemo3 Lines –  ДОГОВОР о приеме на работу студентов

Для QRMemo4  очистите поле ввода текста

Для QRMemo5 - Lines наберите текст:

Президент компьютерной фирмы

________________ Мадалимов Б.

 

Главный бухгалтер

________________ Комекова Р.

 

Юрисконсультант

 ________________Аукенова А.

 

 

 

Для QRMemo6 измените свойство Name на QRM_firma и в свойстве Lines наберите текст:

"Фирма"

Почтовый адрес: 490035

г. У-Ка ул. Гагарина, 41

Усть-Каменогорская компьютерная фирма

Телефон: 35-86-67

 

Для QRMemo7 измените свойство Name на QRM_rab и в свойстве Lines наберите текст:

 

"Работник"

ФИО работника

Адрес:

Телефон

 

 

  1. Вставьте QRLabel1и укажите в свойсте Name - QRL_fio
  2. Вставьте QRLabel2  - Caption - ПРЕДМЕТ ДОГОВОРА
  3. QRLabel3  - Caption - ЮРИДИЧЕСКИЕ АДРЕСА СТОРОН:
  4. QRLabel4 Caption - Работник _______________________________
  5. QRLabel5 Caption - (Ф.И.О. физического лица)
  6. QRLabel6  - Caption  - М.П.
  7.  QRShape1 - Shape qrsCircle
  8. Для кнопки формы3 - Договор (На печать) наберите код:

 

Form4.QRL_fio.Caption:=Ed_fio.Text;

Form4.QRMemo4.Lines.Clear;

Form4.QRMemo4.Lines.Add('1. Фирма принимает на работу вышесказанного физического лица, в должности "'+Ed_Spez.Text+'" . И объязуется предоставить рабочее место.');

Form4.QRMemo4.Lines.Add('2. Работник обязуется следовать внутренним правилам и порядкам Фирмы.');

Form4.QRM_rab.Lines.Clear;

Form4.QRM_rab.Lines.Add('"Работник"');

Form4.QRM_rab.Lines.Add(‘Специальность’+Ed_spez.Text);

Form4.QRM_rab.Lines.Add('Адрес: '+Ed_adres.Text);

Form4.QRM_rab.Lines.Add('Телефон: '+Ed_tel.Text);

Form4.QuickRep1.Preview;

  1. Выполните приложение и проверьте результат

 

Задания:

Задача 1 Задана информационная система “Аукцион картин

Предметная область системы представлена следующими объектами:

1.      Фонд аукциона

свойство объекта                                                   тип                             значность

наименование картины                                          символьный                          30

автор картины                                                         символьный                          20

сумма, представленная за стоимость картины     числовой (денежный)          10

электронная копия картины                                   графический 

дополнительные сведения о картине                    мемо

2. Участники аукциона       

свойство объекта                                                   тип                             значность

наименование участника                                        сивольный                            30

первоначальный взнос                                            числовой                                 5

заявленный капитал                                                числовой                               12

примечание                                                              мемо

Постановка задачи

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

 
 
 
 
 
 
 
 
Меню приложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее выведены указанные в меню формы отчетов (Форма 1, Форма 2, Форма 3)

 

Форма 1                     Фонд аукциона на начало(конец) проведения торгов

 

Наименование картины

Автор картины

Стоимость картины

электронная копия картины

дополнительные сведения о картине

Осень

Иванов

500$

изображение

дар музея

Девушка с яблоками

Серов

1000$

изображение

реставрация проведена ЦМ РК

1999г.

Огонь в море

Тернер

750$

изображение

 

Натюрморт

Репин

750$

изображение

 

Ожидаемая сумма от продажи

 

3000$

изображение

 

 

 

 

Форма 2                                 Информация об участниках аукциона

 

Наименование участника

Доверительные характеристики

Тип связи

первоначальный взнос

заявленный капитал

Национальный музей РК

1500

450000

телефон 222-345-654

Музей искусств ВКО

1500

150000

телефон 246-134

Джон М.

1300

40000

факс 987-345-111

ЧП “Живопись”

1500

550000

телекс 403-235-314

итого

5800

 

 

 

Форма 3                                                        Итоги аукциона

 

Наименование картины

Наименование нового владельца картины

Выплаченная сумма

в тенге

$

Девушка с яблоками

Национальный музей РК

180000

1200

Огонь в море

ЧП “Живопись”

112500

750

итого:

292500

1950

 

 

Задача 2 Задана информационная система “Гостиница”

Предметная область системы представлена следующими объектами:

1.      Справочник категорий номеров

свойство объекта                                                   тип                             значность

номер комнаты                                                        числовой                                 3

категория сервиса                                                    символьный                          15

стоимость проживания в сутки                              числовой (денежный)            6

дополнительные сведения о номере                      мемо

 

2. Заселение клиентов        

свойство объекта                                                   тип                             значность

наименование клиента                                           сивольный                 30

дата, время заселения                                             дата, время 

номер комнаты                                                        числовой                     3

внесенная оплата                                                     числовой                     6

дата оплаты                                                              дата

 

Постановка задачи

Для оперативного учета клиентов гостиницы и контроля за своевременной оплатой за проживание и анализа заполняемости номеров создайте проект со следующей структурой.

 

 

 

 
 
 

пункты верхнего уровня меню

 
Меню приложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Далее выведены указанные в меню формы отчетов (Форма 1, Форма 2, Форма 3)

 

Форма 1                                 Ввод информации о клиенте

 

Наименование клиента

Дата заселения, время

Комната

внесенная оплата

дата оплаты

номер

признак заселения

Сергеев Т.И.

26.12.02 12-00

301

занят

3000

26.12.02

Щербиненко Л.В.

27.12.02 10-00

304

занят

4500

26.12.02

...

 

 

 

 

 

...

 

 

 

 

 

Итого по оплате клиентов

 

7500

 

 

Форма 2                     Расчет номера при его освобождении

 

Наименование клиента

Дата освобождения, время

Комната

состояние оплаты

расчет

номер

признак заселения

Сергеев Т.И.

27.12.02 12-00

301

свободен

3000

расчет

Щербиненко Л.В.

29.12.02 10-00

304

свободен

4500

долг

Шуткин Ю.В.

30.01.02 08.00

412

свободен

12000

переплата

...

 

 

 

 

 

               

Форма 3                     Информация о заполняемости номеров на дата запроса

 

Номер комнаты

Состояние занятости

Категория номера

Выплаченная сумма

 

301

свободен

одноместный

12000

302

занят

люкс

4000

итого:

16000

           

Форма 4Информация о свободных номерах на дата запроса

 

Номер комнаты

дата освобождения

Категория номера

301

26.01.02

одноместный

 

302

28.12.01

люкс

 

 

итого:(кол-во)

 

            2

 

Задача 3 Задана информационная система “Ателье

Предметная область системы представлена следующими объектами:

 

2.      Заказ

свойство объекта                                                   тип                             значность

ФИО клиента                                                           символьный                          30

наименование заказа                                               символьный                          20

дата заказа                                                                дата

ФИО закройщика                                                    символьный                          30

первоначальная оплата                                           числовой                                 7

 

2. Прейскурант цен 

свойство объекта                                                   тип                             значность

наименование заказа                                               символьный                          20

стоимость выполнения заказа                                числовой                                 9

срок исполнения заказа                                          числовой                                 2

дополнительные сведения                                      мемо

Постановка задачи

Ателье принимает заказы на оказание определенных видов услуг. Необходимо создать проект, который позволил бы получать оперативную информацию о поступлении заказов, их своевременном выполнении и итоговой выручке за рассматриваемый период работы.

 
Меню приложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее выведены указанные в меню формы отчетов (Форма 1, Форма 2, Форма 3 (экр.форма), Форма 3’ (файл отчета) аналогична Форме 3)

Форма 1                                             Прием заказов

 

ФИО

клиента

Наименование

заказа

наименование закройщика

дата заказа

первоначальная оплата (тенге)

Веселова О.С.

пошив брюк

Семенова А.А.

12.01.2001

  300

Подкорытова Ю.А.

пошив платья

Иванова Т.И.

10.01.2001

2000

Кабачник Я.Б.

реставрация куртки

Семенова А.А.

12.01.2001

  200

Шуткин С.А.

пошив костюма

Грищенко О.Л.

11.01.2001

2500

итого  в кассу:

5000

 

Форма 2                     Прескурант цен ателье «Яссы»

 

Наименование

заказа

 

 

стоимость

заказа

срок исполнения заказа

пошив брюк

 500

2

пошив платья

1500

3

реставрация куртки

1300

2

пошив пальто

3000

7

пошив костюма

2500

4

итого

8800

 

Форма 3                                 Вывод баланса о состоянии заказов

 

ФИО

 клиента

Наименование

заказа

стоимость заказа

произведенная оплата

баланс

 

 

 

Веселова О.С.

пошив брюк

500

300

  -200

Подкорытова Ю.А.

пошив платья

1500

2000

   500

Кабачник Я.Б.

реставрация куртки

1300

200

-1100

Шуткин С.А.

пошив костюма

2500

2500

       0

итого:

 

 

-800

 

 

Задача 4 Задана информационная система “Услуги связи

Предметная область системы представлена следующими объектами:

 

1.Справочник категорий номеров

свойство объекта                                                   тип                             значность

номер телефона                                                       символьный                            6

категория населенного пункта                               символьный                          15

наименоваие населенного пункта                         символьный                          20

количество минут                                                    числовой                                 3

 

2. Тариф        

свойство объекта                                                   тип                             значность

категория населенного пункта                               символьный                          15

тариф                                                                        числовой                              3,2         

Постановка задачи

Целью данной информационной системы является выдача расчетного листка клиенту для оплаты по номеру на дату запроса.

Меню приложения

 

 

 

 

 

просмотр и корректировка тарифов (экр.форма2)

 

 

пункты второго уровня меню

 
 

 

 

 

 

 

 

 


Далее выведены указанные в меню формы отчетов (Форма 1, Форма 2, Форма 3)

Форма 1                     Ввод информации о состоявшихся переговорах

номер

телефона

категория населенного

пункта

наименование

населенного

пункта

количество

минут

дата переговора

24-57-25

СНГ

Москва

10

26.12.02

42-35-21

Казахстан

Павлодар

5

26.12.02

24-57-25

ВКО

Катон

7

27.12.02

Форма 2                     Действующие тарифы на услуги переговоров

Категория населенного пункта

 Тариф(стоимость 1 мин)

Европа

550

 

СНГ

120

 

Казахстан

12

 

ВКО (по области)

5

 

 

Форма 3(Расчетный листок) Переговоры по номеру(24-57-25) на дата запроса(29.12.02)

 

Населенный пункт

Дата переговоров

Длительность

(мин)

Сумма

 

Москва

26.12.02

10

1200

Катон

27.12.02

7

35

итого к оплате:

1235

 

Задача 5 Задана информационная система “Казино

Предметная область системы представлена следующими объектами:

1.      Игорный стол казино

свойство объекта                                                   тип                             значность

наименование стола                                                символьный                          3

цена фишки                                                              числовой                               5

количество фишек по данной цене                       числовой                               4

признак состояния игры                                         символьный                          11

Постановка задачи

Рассмотрим работу кассы казино, которая обеспечивает

-          выдачу денежных сумм на открытие столов до начада игры;

-          подсчет фишек после окончания игры;

-          подведение итогов и составление баланса

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


Меню приложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее выведены указанные в меню формы отчетов (Форма 1, Форма 1_1, Форма 3 (файл отчета), Форма 2 и Форма 2_1 аналогичны Форме 1 и Форме 1_1, отличие состоит лишь в цвете фишек и признаке состояния стола)

Форма 1                     Выдача фишек на начало игры

 

наименование

стола

цена

фишки

количество

фишек

B/J

10000

20

B/J

2000

40

B/J

500

120

B/J

100

80

B/J

50

40

P#1

10000

20

P#1

2000

40

P#1

500

120

P#1

100

80

P#1

50

40

и т.д. остались столы с наименованиями P#2, P#3, R

 

Форма 1_1  Состояние денежных средств на начало игры

 

наименование

стола

цена

фишки

количество

фишек

сумма

B/J

10000

20

200000

B/J

2000

40

80000

B/J

500

120

60000

B/J

100

80

8000

B/J

50

40

2000

P#1

10000

20

200000

P#1

2000

40

80000

P#1

500

120

60000

P#1

100

80

8000

P#1

50

40

2000

и т.д. остались столы с наименованиями P#2, P#3, R

 

Форма 3         Отчет о движении денежных средств на конец игры

 

Наименование

стола

 

Начало

игры

Конец

игры

баланс

 

 

 

B/J

350000

36200

  +12000

P#1

394000

494000

+100000

P#2

394000

404000

 +10000

P#3

600000

550000

  -50000

R

862000

860000

    -2000

итого:

 

 

 +70000

 

 

 

Лабораторная работа №9: Создание баз данных на сервере InterBase

Цель работы: Регистрация, настройка сервера, получение доступа

 

  1. Выполните Пуск – Программы – InterBaseIbConcole
  2. Для того чтобы программа IbConcole могла работать с сервером выполните из верхнего меню Server - Register
  3. Откроется окно Register Sеrver and Connect, в нем на панели Server Information укажите LocalServer – чтобы сервер работал в локальном режиме
  4. В блоке Login Information этого окна укажите имя пользователя стандартно - SYSDBA и пароль masterkey
  5. Чтобы на сервере создать нового пользователя выполните из верхнего меню Server -  User Securety
  6. В диалоговом окне User Information нажмите кнопку New для создания нового пользователя. В блоке UserName введите informatic, Password=555, Confirm password= 555, затем нажмите Apply, проверьте выполнение: выберите в дереве пункт Users, в правом окне увидите, что создан новый пользователь.
  7. Для того чтобы создать на сервере базу данных выполните из верхнего меню DataBase – Create DataBase, в этом окне введите в поле  alias  имя БД-алиаса=BD
  8. В строке Files укажите путь к БД: d:\INFOR\bd.gdb (для этого создайте на диске Д папку INF) и ее размер в страницах: 230. ОК
  9. Чтобы проверить выполненное действие в окне IbConcole раскройте раздел дерева DataBase и выделите имя BD, в правой части окна появится список операций, которые можно выполнить с выбранной БД
  10. Чтобы подключиться к БД дважды щелкните имя БД, раскроется окно еще на один уровень и станут видны метаданные.
  11. Чтобы работы с БД выполните из верхнего меню Tools – InterActive SQL
  12. Выполните Close для выхода из окна IbConcole.
  13. Параллельно откройте блокнот и наберите сценарий создания домена:

Connect ‘d:\INFOR\bd.gdb’

User ‘informatic’ Password ‘555’;

Create domain tpid integer not null;

Create domain tln char(20) not null;

Create domain tfn char(20) not null;

Create domain tmn char(20);

Create domain tsd date not null;

  1. Сохраните файл под именем infor.sql”. Закройте блокнот и в окне ISQL выполните команду верхнего меню QueryLoad Script, укажите имя сценария, выполните сценарий Query  - Еxecute
  2. В окне ISQL наберите сценарий создания  таблицы:

CREATE TABLE BD1 (

personID tpid,

firstname tfn,

middlename tmn,

lastname tln,

Primary key (personid)

)

  1. Выполните запрос и проверьте результат. Откройте раздел Tables и убедитесь что создана таблица BD1, чтобы посмотреть домен, выполните DataBaseView Metadata
  2. Далее рассмотрим заполнение БД записями, для этого выполните EditOptions, убедитесь, что в строке Character set установлено значение win1251, если не установлено, укажите из списка кириллицу и нажмите кнопку Apply. Или же выполните Edit - Font  и выбрать в списке «Набор символов» строку «Кириллица».
  3. В блокноте создайте сценарий:

Set names win1251;

Connect ‘d:\INFOR\bd.gdb’

User ‘informatic’ Password ‘555’;

 

Insert into BD1(personid, firstname, middlename, lastname, startdata)

Values(1, ‘Петров’, ‘Иван’,’Петров’, ’01.01.1988’)

И т.д.

  1. Откройте файл сценария в окне ISQL: Query – Load Script, укажите имя сценария, выполните сценарий Query  - Еxecute.
  2. Выполните запрос  select * from BD1 чтобы убедиться, что записи внесены в таблицу.
  3. Далее все изменения должны подтверждаться командой Commit.
  4.  Если все изменения проделаны правильно выполните Close для выхода из окна IbConcole.

 

Задания:

 

1.      Используя утилиту InterBase выберите по варианту задание для самостоятельной работы (см. таблицу1.2)

2.      Разработайте этап концептуального проектирования выбранной базы данных

3.      Составьте описание предметной области: характеристика ПО, Ограничения и допущения ПО.

4.      Постройте ER-диаграммы ПО

5.      Разработайте этап логического проектирования: выбор модели данных, нормализация отношений, даталогическая модель данных, реляционная модель данных

6.      Создайте сетевой вариант базы данных и заполните

7.      Создайте запрос по разным критериям

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методические рекомендации "Технология разработки программного обеспечения""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Дефектоскопист

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 656 299 материалов в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 17.10.2019 499
    • DOCX 608.5 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Большакова-Стрекалова Анна Викторовна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    • На сайте: 9 лет и 5 месяцев
    • Подписчики: 6
    • Всего просмотров: 82888
    • Всего материалов: 31

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

HR-менеджер

Специалист по управлению персоналом (HR- менеджер)

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

Учитель информатики

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 492 человека из 73 регионов
  • Этот курс уже прошли 1 519 человек

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 192 человека из 54 регионов
  • Этот курс уже прошли 970 человек

Курс повышения квалификации

Особенности подготовки к сдаче ОГЭ по информатике и ИКТ в условиях реализации ФГОС ООО

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 99 человек из 39 регионов
  • Этот курс уже прошли 805 человек

Мини-курс

Психология развития и воспитания детей: особенности и подходы

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 25 человек из 16 регионов

Мини-курс

Дизайн-проектирование: практические и методологические аспекты

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

От романтизма к современности: шедевры и новаторство

5 ч.

780 руб. 390 руб.
Подать заявку О курсе