- Учебник: «Информатика (базовый и углублённый уровень)», Гейн А.Г., Сенокосов А.И.
- 15.10.2019
- 382
- 2
Смотреть ещё
674
методические разработки по информатике
Перейти в каталог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-диаграммы необходимо выделить объекты ПО и их атрибутивный состав. На основе перечня атрибутов выделим следующие сущности с атрибутами:
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) DataBaseName - Firma1.
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) DataSource - DataSource1 деп
2) Hints - көмекші хабарлама шығару массиві, орысшаға аударуға болады.
3) ShowHint – True деп
1) Stretch - True деп
2) Dialogs панелінен OpenPictureDialog1 компонентін қалыпқа әкелеміз.
3) DBImage1 компонентін белгілеп, OnDblClick оқиғасына программалық код жазамыз:
If OpenPictureDialog1.Execute then begin
Table2.Edit;
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Table1.Post;
End;
Задания:
Лабораторная работа №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 – обновить текущую запись.
Задания:
Лабораторная работа №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.
Задания:
Лабораторная работа №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, выполнив команду File – New – Form.
Окно формы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, имеется один недостаток – имена полей выводятся на английском, чтобы избавиться от этой проблемы проделайте следующее:
FieldName – имя поля в таблице
Title – Caption – новое имя поля, Font - шрифт, Aligment - выравнивание
После того как изменили имя первого поля, все операции повторяйте для остальных полей.
В итоге вы должны получить окно, как показано на рисунке:
Задания:
Лабораторная работа №8: Составление отчетов
Цель работы: Создать отчет с помощью вкладки QReport
Создайте форму4, как показано на рисунке:
Настройте вкладку Qreport. Из этой вкладки вставьте следующие компоненты, чтобы составить бланк договора о приеме на работу студентов:
Укажите для них следующие свойства:
QRMemo1 – Lines - Усть-Каменогорская компьютерная фирма, именуемый дальнейшем "Фирма", в лице президента Мадалимов Б., на основании Устава, с одной стороны и
QRMemo2 - Lines - с другой стороны, именуемого в дальнейшем "Работник", заключил настоящий договор о нижеследующем:
QRMemo3 Lines – ДОГОВОР о приеме на работу студентов
Для QRMemo4 очистите поле ввода текста
Для QRMemo5 - Lines наберите текст:
Президент компьютерной фирмы
________________ Мадалимов Б.
Главный бухгалтер
________________ Комекова Р.
Юрисконсультант
________________Аукенова А.
Для QRMemo6 измените свойство Name на QRM_firma и в свойстве Lines наберите текст:
"Фирма"
Почтовый адрес: 490035
г. У-Ка ул. Гагарина, 41
Усть-Каменогорская компьютерная фирма
Телефон: 35-86-67
Для QRMemo7 измените свойство Name на QRM_rab и в свойстве Lines наберите текст:
"Работник"
ФИО работника
Адрес:
Телефон
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. Фонд аукциона
свойство объекта тип значность
наименование картины символьный 30
автор картины символьный 20
сумма, представленная за стоимость картины числовой (денежный) 10
электронная копия картины графический
дополнительные сведения о картине мемо
2. Участники аукциона
свойство объекта тип значность
наименование участника сивольный 30
первоначальный взнос числовой 5
заявленный капитал числовой 12
примечание мемо
Объявлено о проведении аукциона. Представлена информация о фонде картин, представляемых для продажи на аукционе. Далее производится регистрация организаций, частных лиц, желающих участвовать в аукционе. Проводится аукцион. После проведенных торгов подводятся итоги. Для оперативного ведения обработки информации, связанной с архивом аукциона, регистрацией участников, проведением торгов и подведением итогов, необходимо создать проект по следующей структуре.
Далее выведены указанные в меню формы отчетов (Форма 1, Форма 2, Форма 3)
Наименование картины |
Автор картины |
Стоимость картины |
электронная копия картины |
дополнительные сведения о картине |
Осень |
Иванов |
500$ |
изображение |
дар музея |
Девушка с яблоками |
Серов |
1000$ |
изображение |
реставрация проведена ЦМ РК 1999г. |
Огонь в море |
Тернер |
750$ |
изображение |
|
Натюрморт |
Репин |
750$ |
изображение |
|
Ожидаемая сумма от продажи
|
3000$ |
изображение |
|
Наименование участника |
Доверительные характеристики |
Тип связи |
|
первоначальный взнос |
заявленный капитал |
||
Национальный музей РК |
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)
Наименование клиента |
Дата заселения, время |
Комната |
внесенная оплата |
дата оплаты |
|
номер |
признак заселения |
||||
Сергеев Т.И. |
26.12.02 12-00 |
301 |
занят |
3000 |
26.12.02 |
Щербиненко Л.В. |
27.12.02 10-00 |
304 |
занят |
4500 |
26.12.02 |
... |
|
|
|
|
|
... |
|
|
|
|
|
Итого по оплате клиентов
|
7500 |
|
Наименование клиента |
Дата освобождения, время |
Комната |
состояние оплаты |
расчет |
|
номер |
признак заселения |
||||
Сергеев Т.И. |
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)
ФИО клиента |
Наименование заказа |
наименование закройщика |
дата заказа |
первоначальная оплата (тенге) |
Веселова О.С. |
пошив брюк |
Семенова А.А. |
12.01.2001 |
300 |
Подкорытова Ю.А. |
пошив платья |
Иванова Т.И. |
10.01.2001 |
2000 |
Кабачник Я.Б. |
реставрация куртки |
Семенова А.А. |
12.01.2001 |
200 |
Шуткин С.А. |
пошив костюма |
Грищенко О.Л. |
11.01.2001 |
2500 |
итого в кассу: |
5000 |
Наименование заказа |
|
|
стоимость заказа |
срок исполнения заказа |
|
пошив брюк |
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)
номер телефона |
категория населенного пункта |
наименование населенного пункта |
количество минут |
дата переговора |
24-57-25 |
СНГ |
Москва |
10 |
26.12.02 |
42-35-21 |
Казахстан |
Павлодар |
5 |
26.12.02 |
24-57-25 |
ВКО |
Катон |
7 |
27.12.02 |
Категория населенного пункта |
Тариф(стоимость 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
наименование стола |
цена фишки |
количество фишек |
сумма |
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
Цель работы: Регистрация, настройка сервера, получение доступа
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;
CREATE TABLE BD1 (
personID tpid,
firstname tfn,
middlename tmn,
lastname tln,
Primary key (personid)
)
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. Используя утилиту InterBase выберите по варианту задание для самостоятельной работы (см. таблицу1.2)
2. Разработайте этап концептуального проектирования выбранной базы данных
3. Составьте описание предметной области: характеристика ПО, Ограничения и допущения ПО.
4. Постройте ER-диаграммы ПО
5. Разработайте этап логического проектирования: выбор модели данных, нормализация отношений, даталогическая модель данных, реляционная модель данных
6. Создайте сетевой вариант базы данных и заполните
7. Создайте запрос по разным критериям
В нашем каталоге доступно 74 187 рабочих листов
Перейти в каталогПолучите новую специальность за 3 месяца
Получите профессию
за 6 месяцев
Пройти курс
Рабочие листы
к вашим урокам
Скачать
6 656 299 материалов в базе
«Информатика (базовый и углублённый уровень)», Гейн А.Г., Сенокосов А.И.
Больше материалов по этому УМКНастоящий материал опубликован пользователем Большакова-Стрекалова Анна Викторовна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс профессиональной переподготовки
300/600 ч.
Курс профессиональной переподготовки
300/600 ч.
Курс повышения квалификации
36 ч. — 180 ч.
Мини-курс
10 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.