Методические рекомендации для преподавателя Дисциплина «Проектирование информационных систем»
СОДЕРЖАНИЕ: При разработке методических рекомендаций в основу положен Государственный образовательный стандарт по специальностиФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТУРИЗМА И СЕРВИСА»
ФГОУВПО «РГУТиС»
Факультет____ «Экономический»________________________________
(название факультета)
Кафедра__ «Корпоративное управление и электронный бизнес»______
(название кафедры)
УТВЕРЖДАЮ
Проректор по учебной работе,
д.э.н., профессор _____________________________Новикова Н.Г. «____»______________________________20___г.
Методические рекомендации
для преподавателя
Дисциплина_«Проектирование информационных систем»
(название дисциплины)
Специальность __080801 Прикладная информатика в экономике ___
(название специальности)
Москва 2010г.
Методические рекомендации разработаны на основе рабочей программы дисциплины
___«Проектирование информационных систем» ________
(название курса)
При разработке методических рекомендаций в основу положен Государственный образовательный стандарт по специальности
__080801 Прикладная информатика в экономике
(шифр и название специальности)
Методические рекомендации для преподавателя рассмотрены и утверждены на заседании кафедры________________________________________
__________ «Корпоративное управление и электронный бизнес» __________
(название кафедры)
Протокол № ________ «____»_______________20__г.
Зав кафедрой д.т.н., проф А.И. Потемкин.
Методические рекомендации одобрены Научно-методическим советом ФГОУВПО «РГУТиС»
Протокол №_______ «_____»_____________20___г.
Ученый секретарь
Научно-методического совета
к.и.н., доцент Юрчикова Е.В.
Методические рекомендации разработал:
преподаватель кафедры
__________ «Корпоративное управление и электронный бизнес» __________
(название кафедры)
к.т.н., доц. Ю.В.Боковой.
Методические рекомендации преподавателю
На первом занятии по данной учебной дисциплине необходимо ознакомить студентов ответить на вопросы.
При подготовке к лекционным занятиям необходимо продумать план его проведения, содержание вступительной, основной и заключительной части лекции, ознакомиться с новинками учебной и методической литературы, публикациями периодической печати по теме лекционного занятия. Определить средства материально-технического обеспечения лекционного занятия и порядок их использования в ходе чтения лекции.
В ходе лекционного занятия преподаватель должен назвать тему, учебные вопросы, ознакомить студентов с перечнем основной и дополнительной литературы по теме занятия. Желательно дать студентам краткую аннотацию основных первоисточников. Во вступительной части лекции обосновать место и роль изучаемой темы в учебной дисциплине, раскрыть ее практическое значение. Если читается не первая лекция, то необходимо увязать ее тему с предыдущей, не нарушая логики изложения учебного материала. Раскрывая содержание учебных вопросов, акцентировать внимание студентов на основных категориях, явлениях и процессах, особенностях их протекания. Раскрывать сущность и содержание различных точек зрения и научных подходов к объяснению тех или иных явлений и процессов.
Следует аргументировано обосновать собственную позицию по спорным теоретическим вопросам. Приводить примеры. Задавать по ходу изложения лекционного материала риторические вопросы и самому давать на них ответ. Это способствует активизации мыслительной деятельности студентов, повышению их внимания и интереса к материалу лекции, ее содержанию. Преподаватель должен руководить работой студентов по конспектированию лекционного материала, подчеркивать необходимость отражения в конспектах основных положений изучаемой темы, особо выделяя категорийный аппарат. В заключительной части лекции необходимо сформулировать общие выводы по теме, раскрывающие содержание всех вопросов, поставленных в лекции.
После каждого лекционного занятия сделать соответствующую запись в журналах учета посещаемости занятий студентами, выяснить у старост учебных групп причины отсутствия студентов на занятиях. Проводить групповые и индивидуальные консультации студентов в ходе их подготовки к текущей и промежуточной аттестации по учебной дисциплине.
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ПРЕПОДАВАТЕЛЯ ПО ПРОВЕДЕНИЮ ЛЕКЦИЙ
Цель и задачи изучения дисциплины.
Курс «Проектирование информационных систем в экономике» является важной составляющей завершающего этапа обучения студентов по специальности «Прикладная информатика (в экономике)». Цель курса – формирование навыков самостоятельного практического применения современных средств и методов проектирования ЭИС, на основе использования визуального проектирования и CASE – средств.
Студент, успешно изучивший данный курс, должен быть подготовлен к решению профессиональных задач, знать принципы системного, структурного анализа и функционального моделирования экономических информационных систем (построения диаграмм, разработки структуры ЭИС), принципы моделирования данных, уметь проектировать базы данных ЭИС, использовать процедурное и объектно-ориентированное программирование, уметь проектировать отдельные виды обеспечения ЭИС. Обеспечивать возможности развития и адаптации профессионально-ориентированных информационных систем на всех стадиях их жизненного цикла: создания информационно-логических моделей объектов, разработки нового программного и информационного обеспечения в предметной области; стыковки информационных систем из разных предметных областей в связи с появляющимися новыми задачами; перевода систем на новые аппаратные и информационные платформы.
1. Осенний семестр
№п/п |
Наименование темы |
Структура и содержание основных теоретических вопросов по изучаемой теме |
Занч. |
1. |
Системный подход к проектированию ИС и развитие информационных технологий управления. |
Проблемы управления предприятием. Развитие методик управления предприятием. Факторы, влияющие на развитие корпоративных информационных систем. Развитие общих возможностей и производительности компьютерных систем. Развитие подходов к технической и программной реализации элементов информационных систем. |
2 |
2. |
Роль данных в процессе управления. Функции ИС и решаемые задачи. |
Информационная технология в управлении предприятием. Роль данных в процессе управления. Офисная информационная технология. Задачи проектирования экономических информационных систем. Разработка технического задания и организация разработки проекта. Внедрение экономической информационной системы. Экономическая эффективность информационных систем. Автоматизация проектирования экономических информационных систем и модельный подход. |
4 |
3. |
Основные составляющие ИС и их классификация. |
Структура и основные составляющие ЭИС. Соотношение между составляющими информационной системы. Особенности процесса проектирования и внедрения предприятием ИС. Классификация ИС по масштабу и решаемым задачам ИС. Классификация ИС по сфере применения. Краткая характеристика офисных информационных систем, информационных систем обработки транзакций, систем принятия решений, информационно-справочных системы, ИС в сети Интернет. |
4 |
4. |
Структура и характеристики ИС с различной архитектурой построения. |
Структура и характеристики ИС локальных файл-серверных, клиент-серверных, систем на основе многоуровневой архитектуры, систем на основе Интернет/интранет-технологий. Распределение функций в двухуровневых ИС. Особенности распределения функций и взаимодействия в сложных многоуровневых ИС. |
4 |
5. |
Жизненные циклы ИС и их модели. |
Основные процессы, характеризующие жизненный цикл ИС. Особенности основных, вспомогательных и организационных процессов жизненного цикла ИС. Основные модели жизненного цикла ИС, их достоинства, недостатки и ограничения в использовании. Распределение рисков при использовании разных типов моделей жизненного цикла ИС. |
4 |
6. |
Управление проектированием |
Понятие проекта и основные характеристики его, как объекта управления. Классификация проектов по масштабу структуре и типам. Основные фазы проектирования. Основные проблемы и ошибки, возникающие при планировании и выполнении проектов ЭИС. |
4 |
7. |
Каноническое проектирование ЭИС. |
Состав стадий и этапов канонического проектирования ЭИС. Состав и содержание работ на предпроектной стадии создания ЭИС. Состав и содержание работ на стадии техно-рабочего проектирования. Состав и содержание работ на стадиях внедрения, эксплуатации и сопровождения проекта. Назначение и составление план-графиков проведения работ. |
4 |
8. |
RAD технология проектирования ИС |
RAD методология проектирования ИС, основные задачи и содержание работ при ее использовании. Основные составляющие и их содержание RAD технологии проектирования. Особенности RAD технологии и объектно-ориенитрованный подход в задачах проектирования ИС. Фазы жизненного цикла в рамках методологии RAD. Ограничения в использовании методологии RAD для проектирования ИС. |
4 |
9. |
Концепции обработки данных в ИС. |
Линейные файлы данных. Организация доступа к записям данных. Организация хранения и доступа к данным в простых СУБД. Развитые системы управления базами данных. Логическая и физическая независимость данных. Использование языка описания данных, языка команд и языка запросов при обращения к данным. Функционально-ориентированные структуры и средства администрирования доступа к данным. |
4 |
10. |
Организация хранения данных в ЭВМ. |
Типы, форматы и структуры данных. Описание и обработка файлов. Особенности реализации баз данных, принципиальные отличия в методах доступа к данным. Основные задачи обработки данных в БД и показатели эффективности для них. Физические структуры организации хранения данных на носителях, особенности нелинейных структур организации хранения данных. |
2 |
ИТОГО |
36 |
2. Весенний семестр
№п/п |
Наименование темы |
Структура и содержание основных теоретических вопросов по изучаемой теме |
Занч. |
1. |
Логические модели данных.Реляционная модель данных |
Атрибутивный способ идентификации объектов. Логические модели организации данных. Базовые понятия реляционной модели данных, типы данных, домены, кортежи, ключи отношения. Связанные отношения. Условия целостности данных. Типы связей между таблицами. Свойства таблиц реляционной СУБД. Нормализация данных |
2 |
2. |
Концептуальное проектирование структуры данных |
Концептуальное моделирование структуры данных. Уровни абстракции данных. Концептуальная модель БД. Внутренняя модель БД. Внешняя модель БД. Физическая модель БД |
2 |
3. |
ER-модель данных. |
Сущности и их атрибуты. Виды атрибутов. Виды связей, связность, мощность связей, сильные и слабые связи. Зависимость существования. Сила связи и слабые сущности. Супертипы и подтипы сущностей. Модель Чена, нотация Баркера. Разработка ER-диаграмм, метод синтеза. |
4 |
4. |
Структура приложений для работы с БД |
Принципы построения баз данных. Использование систем индексации. Общая структура доступа к данным в автономных, файл-серверных, клиент серверных и многоуровневых архитектурах ИС. |
4 |
5. |
Технологии доступа к данным. Доступ к данным с использованием BDE |
Методы и способы доступа к данным. Организация связи с БД в Delphi. Варианты архитектуры для BDE. Набор данных. Классы TTable TQuery. Компонент TDataSourse для соединения с набором данных. Состояние набора данных, навигация по набору данных, поиск записей и фильтрация. Работа с полями данных. Модуль данных. Компоненты для отображения данных в интерфейсе пользователя. |
4 |
6. |
Доступ к данным с использованием ADO |
Технология COM. Компоненты TADOConnection, TADOCommand, TADODataSet, TADOTable, TADOQuery и TADOStoredProc. Компоненты для работы с полями. Класс TField. Вычисляемые поля. Программное управление соединением. Транзакции в ADO. |
4 |
7. |
Реляционный способ работы с данными (выборка данных). |
Использование SQL для выборки данных из таблиц. Компоненты Delphi, работающие с БД через SQL-запросы. Простейшая форма оператора Select. Задание условий при выборке данных. Операторы сравнения. Логические операторы. Упорядочение данных. Использование вычисляемых полей. |
4 |
8. |
Вывод данных. Создание отчетов. |
Типы отчетов. Утилита QuickReport. Структура генератора QuickReport. Компонент TQuickRep. Упорядочивание и группировка данных в отчете. Отображение в отчете таблиц и графиков. |
4 |
9. |
Планирование разработки приложений. |
Система меню и панель инструментов. Работа с редактором меню. Создание подменю. Задание реакции на выбор команды меню. Создание контекстного меню. Панель инструментов. Контейнеры для панелей инструментов. Способы задания реакции на нажатие кнопки на панели инструментов. Геометрия и графика интерфейса пользователя. |
4 |
10. |
Разработка справочной системы |
Основные компоненты справочной системы. Форматы справочной системы WinHelp и HTML Help. Основные элементы справочной системы, создание файла справки. Создание строки состояния приложения. Компиляция файла справки. Подключение к приложению справочных файлов. |
4 |
ИТОГО |
36 |
3. РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА ПО ЛЕКЦИОННОМУ МАТЕРИАЛУ
3.1. Основная литература
- Ю.С. Избачков, В.Н. Петров. Информационные системы /учебник для вузов/. СПб.:Питер, 2006.
- А.Я. Архангельский. Программирование в Delphi для Windows. М.: Бином,2007.
- Г.Н. Смирнова, А. А. Сорокин, Ю.Ф. Тельнов. Проектирование экономических информационных систем: учебник/. Под ред. Ю.Ф. Тельнова. - М.: Финансы и статистика, 2003.
- А.Д.Хомоненко, В.М.Цыганков, М.Г.Мальцев. Базы данных /учебное пособие/. Изд. СПб КОРОНАпринт, 2006
5. А.М.Вендров. Проектирование программного обеспечения экономических информационных систем /учебник для вузов/. М.: Финансы и статистика, 2005.
3.2. Дополнительная литература
- А.П.Чекалов. Базы данных: от проектирования до разработки приложений. СПб.: БХВ-Петербург, 2003.
2. Т.П.Барановская, В.И.Лойко, М.И.Семенов, А.И.Трубилин. Информационные системы и технологии в экономике.М.: Финансы и статистика, 2003.
3. С.В.Маклаков. Моделирование бизнес-процессов с ALLFusion Process Modeler. М.: Диалог МИФИ, 2004.
4. С.А.Орлов. Технологии разработки программного обеспечения. Разработка сложных программных систем /учебник для вузов/.СПб.:Питер, 2004.
5. Журнал «Информационные технологии».
4. СРЕДСТВА ОБУЧЕНИЯ.
Технические средства обучения (ТСО) – компьютер с проектором в лекционной аудитории.
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ПРЕПОДАВАТЕЛЯ ПО ПРОВЕДЕНИЮ ПРАКТИЧЕСКИХ ЗАНЯТИЙ
ТЕМА: ______________________________________
ЦЕЛЬ: (способствовать формированию умений по …)
ЗАДАЧИ: (рассмотреть …; обучить …; изучить …)
СРЕДСТВА ОБУЧЕНИЯ_______________________
МЕТОДЫ ОБУЧЕНИЯ_________________________
МЕТОДИЧЕСКИЕ УКАЗАНИЯ (структура и хронометраж занятия):
СТУДЕНТ ДОЛЖЕН ЗНАТЬ:
1. до изучения темы (базисные знания)
1. после изучения темы
СТУДЕНТ ДОЛЖЕН УМЕТЬ____________________
КОНТРОЛЬНЫЕ ВОПРОСЫ____________________
ПРАКТИЧЕСКИЕ ЗАДАНИЯ ДЛЯ СТУДЕНТОВ: (провести…; определить…; выполнить… решить… )
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА (основная и дополнительная)
№п/п |
Наименование темы |
Содержание основных вопросов по изучаемой теме |
Занч. |
|
4.3. На компьютерах в классе должно быть установлено следующее программное обеспечение:
- MS Office 2003 или выше;
- Delphi 6 или выше;
- Paradox 9;
- FoxPro 8 или выше;
- SyBase Power Designer 10 или выше.
-ххх-
Занятия 1
На выполнение занятий 1 отводится 4ч.
Тема: Разработка простых приложений для выполнения вычислений
Введение
Дать указание всем студентам носить Flash-накопители или дискеты на практические занятия и сохранять на них файлы с заданиями в одной папке, а выполнение задания и результаты работы в другой.
В Word открыть файл присвоить ему имя Занятие 1 и сохранить в папке, которая должна находиться в папке Мои документы/Временная 01/Номер группы / папка под своим именем (при необходимости нужные папки создать).
Задание 1
Составить приложение, в котором выполняется сложение двух чисел.
Условия
Каждое число должно вводится в свое окно, а их сумма выводиться в третьем окне.
Выполнение операции сложения должно осуществляться по нажатию кнопки Сложить.
Завершение работы программы должно осуществляться по нажатию другой кнопки с надписью Завершение работы.
Порядок выполнения
- Создать форму.
- Поместить на форму два окна для ввода (компонент TEdit) и одно для вывода чисел.
- Для окон убрать их надписи внутри (Caption) и создать надписи сверху с помощью компонента Метка (TLabel).
- Поместить на форму элементы управления ( две кнопки).
- Создать методы (функции) обработки для всех элементов, используя приведенный ниже листинг, как подсказку (из предыдущего упражнения мы помним, что простое копирование и вставка текста листинга не приведет к результату).
Замечание . Поскольку для ввода и вывода чисел используются компоненты текстовых окон, то для сложения необходимо преобразовать тип вводимых строк символов в числовой, а затем результат сложения снова преобразовать в строковый тип, что и выполняется командами приведенной строки. Т.е. текст преобразуется в число оператором (методом) StrToInt ( ), а затем полученная сумма обратно в текст (для вывода в текстовое окно) с помощью IntToStr( ).
Задание 2
Дополнить работу калькулятора таким образом, чтобы по результату, появляющемуся в третьем окне при нажатии кнопки сложить, в окне для картинки, появлялось одно изображение, а при нажатии кнопки вычесть другое изображение. Например, такой вид:
Задание 3 (усложненное).
Условие
Самостоятельно создать калькулятор с окном для картинки. При этом после подсчета результата в окне должна появляться одна картинка, если результат четное число, и другая картинка , если результат число нечетное. Написать комментарии к командам процедур и предъявить программу с комментариями преподавателю.
Внешний вид формы с кнопками может быть, например, такой.
Занятия 2
На выполнение занятий 2 отводится 4ч.
Тема: Создание учетной карточки для студенческого отдела кадров
Введение
Открыть Word и в свою папку для заданий по дисциплине записать задание и рабочий файл с проектом программы.
Задание 1
1. Разработать интерфейс и программу Учетная карточка студента.
Учетная карточка должна содержать:
- Реквизит с буквой алфавита по фамилии студента (вверху слева)
- Заголовок - Учетная карточка студента – стиль 1 с выравниванием по центру
- Далее выравнивание по левому краю метки и рядом окна для ввода
- Фамилия
- Имя
- Отчество
- Год рождения
- Год поступления
- Группа
- Адрес
- Дата заполнения
- Одно поле для фотографий - паспортная фотография и художественная фотография.
- Две кнопки для вызова той или другой фотографии в указанное поле.
Сохранить форму в отдельной папке, вложенной в папку с именем группы.
2. Все свойства указанных позиций посмотреть в инспекторе объектов и переписать в таблицу, созданную в файле Word.
3. Предъявить интерфейс преподавателю и, после коллективного согласования студентами группы, скорректировать интерфейс формы для единообразия.
4. Каждому студенту заполнить все поля карточки ( в адресе номер дома и квартиры при желании можно указать вымышленные), включая фотографии (можно дополнить позже). Заполненную карточку сохранить под отдельным именем проекта (в отдельной папке).
Задание 2
1. Дополнить программу из предыдущего задания так, чтобы смена фотографий осуществлялась попеременно по клику на одной и той же кнопке.
2. Рассмотреть свойства опций AutoSize и Stretch, используемых для изменения формата изображений, и описать методику их использования в своем рабочем Word-файле.
3. Освоить методику использования изображений – увеличить количество вызываемых изображений, поменять цвет фона, варианты выравнивания и т.п. Сохранить результаты работы.
4.
Подсказки
Для вызова той или иной фотографии или картинки, необходимо предварительно иметь их, например, в формате bmp в своей папке.
Для программирования кнопки Button1 необходимо два раза кликнуть на ней левой клавишей мыши. В результате активизируется окно текста программы с заготовкой процедуры Button1Click, которая будет обрабатывать событие клика на кнопке Button1:
procedure TForml.Button1Click(Sender: Tobject);
begin
end;
В заготовку необходимо вставить текст программы реакции на это событие. Процедура однократного переключения будет, например, иметь такой вид:
procedure TForml.ButtonlClick(Sender: TObject);
begin
Image1. Visible:= False; {Портретная фотография становится видимой)
Image2.Visible:= True; {Художественная фотография становится невидимой)
end;
С помощью данной процедуры свойство видимости для объекта Image1 включаем, а это же свойство для объекта Image2 выключаем.
Вариант многократного переключения можно организовать с помощью двух кнопок. Для второй кнопки действия будут противоположные.
Обратить внимание на использование составных имен типа Image1.Visible, в которых название объекта от его свойства отделяется точкой. Такие составные имена дают доступ к значению конкретного свойства некоторого объекта.
Для многократного переключения фотографий (рисунков), необходимо менять свойства видимости рисунка на противоположные внутри процедуры по условию if .
Т.е. до задания свойств видимости рисунка, эти свойства проверяются и, в зависимости от их истинности или ложности, задаются противоположные значения.
Для отработки можно поменять первоначальный цвет поля рисунка, вставить еще один рисунок и т.п.
Занятие 3. Контрольное
На выполнение занятия 3 отводится 4ч.
Задание
1. Разработать программу калькулятора. Для тех, кто не очень свободно читает листинг, рекомендуется сначала составить блок-схему алгоритма в соответствии с заданием и с учетом приведенного упрощенного листинга.
2. Снабдить программу необходимыми комментариями.
3. Подготовиться к ответам на вопросы, содержащиеся в листинге примера.
4. Объяснить, почему не будет работать программа, если приведенный ниже листинг скопировать и поместить в разрабатываемый модуль.
Листинг
unit calc_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton; // 1. как это получается?
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
ButtonPlus: TButton;
ButtonMinus: TButton;
ButtonEnter: TButton;
ButtonC: TButton;
Button0: TButton;
ButtonZ: TButton;
procedure Edit1Change(Sender: TObject; var Key:Char);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button0Click(Sender: TObject);
procedure ButtonZClick(Sender: TObject);
procedure ButtonCClick(Sender: TObject);
procedure ButtonPlusClick(Sender: TObject);
procedure ButtonMinusClick(Sender: TObject);
procedure ButtonEnterClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; // 2. что это означает?
Implementation // 3. что это такое?
{$R *.dfm}
var
accum: real; // это что?
oper: integer; // это что?;
f: integer;
{ f = 0 признак ожидания ввода чего? f = 1 соответственно чего? }
procedure TForm1.Button0Click(Sender: TObject);
begin
if f = 0 //
then begin
Edit1.Text := 0; // 4. что такое Edit1 и Edit1.Text (и точка)?
f := 1;
end
else
if Edit1.Text 0 // это позволяет не выводить 0 в начале числа, но
// 5. поясните как это делается?
then Edit1.Text := Edit1.Text + 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin // 6. поясните, что делает эта процедура?
if f = 0
then begin
Edit1.Text := 1;
f := 1;
end
else Edit1.Text := Edit1.Text + 1; // 7. что делает эта операция?
end;
procedure TForm1.Button2Click(Sender: TObject); // ?
begin
if (f = 0)
then begin
Edit1.Text := 2;
f := 1;
end
else Edit1.Text := Edit1.Text + 2;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if f = 0
then begin
Edit1.Text := 3;
f := 1;
end
else Edit1.Text := Edit1.Text + 3;
end;
procedure TForm1.Button4Click(Sender: TObject); // ?
begin
if f = 0 then
begin
Edit1.Text := 4;
f := 1;
end
else Edit1.Text := Edit1.Text + 4;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if (f = 0)
then begin
Edit1.Text := 5;
f := 1;
end
else Edit1.Text := Edit1.Text + 5;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if f = 0
then begin
Edit1.Text := 6;
f := 1;
end
else Edit1.Text := Edit1.Text + 6;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
if f = 0
then begin
Edit1.Text := 7;
f := 1;
end
else Edit1.Text := Edit1.Text + 7;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
if f = 0
then begin
Edit1.Text := 8;
f := 1;
end
else Edit1.Text := Edit1.Text + 8;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
if f = 0
then begin
Edit1.Text := 9;
f := 1;
end
else Edit1.Text := Edit1.Text + 9;
end;
procedure TForm1.ButtonZClick(Sender: TObject); // 8. что делает эта процедура?
begin
if Edit1.Text = 0 then
begin
Edit1.Text := 0,;
f := 1;
end;
if Pos(,,Edit1.Text) = 0 then // 9. что делает эта операция?
Edit1.Text := Edit1.Text + ,;
end;
procedure DoOper; // что делает процедура?
var
numb: real; //10. это число на индикаторе, поясните //что означает эта строка?
begin
// 11. accum что содержит?
// 12. oper – это что?
// 13 а где находится операнд?.
numb := StrToFloat(Form1.Edit1.Text);
case oper of
0: accum := numb;
1: accum := accum + numb;
2: accum := accum - numb;
end;
Form1.Edit1.Text := FloatToStr(accum); // 14. что делает эта операция?
end;
procedure TForm1.ButtonPlusClick(Sender: TObject); // что делает процедура?
{ Подсказка: надо выполнить предыдущую операцию, вывести результат на индикатор, запомнить текущую операцию и установить режим ожидания первой цифры нового числа}
begin
if f = 0
then oper := 1
else begin // Подсказка: на индикаторе есть число
DoOper; // 15. что делает эта операция?
oper :=1; // 16. что делает эта операция?
f:=0;
end;
end;
procedure TForm1.ButtonMinusClick(Sender: TObject); // что делает процедура?
begin
if f = 0
then oper := 2
else begin
DoOper; // 17. что делает эта операция?
oper :=2; // 18. что делает эта операция?
f:=0;
end;
end;
// кнопка =
procedure TForm1.ButtonEnterClick(Sender: TObject); // 19. что делает эта процедура?
begin
if f = 0
then oper := 0
else begin
DoOper; // 20. это что?
oper :=0;
f:=0;
end;
end;
// 21 кнопка с - что делает?
procedure TForm1.ButtonCClick(Sender: TObject);
begin
Edit1.Text := 0;
accum := 0;
oper := 0;
f := 0;
end;
procedure TForm1.Edit1Change(Sender: TObject; var Key:Char);
// 22. что делает эта процедура?
begin
Key := Chr(0);
end;
procedure TForm1.FormCreate(Sender: TObject); // 23. что делает эта процедура?
begin
oper := 0;
end;
end.
Рекомендация
Дать указание студентам по завершению упражнения в Word вставить табличку, поместить в нее ответы на все указанные вопросы и предъявить их преподавателю.
Занятия 4 .
На выполнение занятий 4 отводится 4ч.
Тема: Проектирование учебной БД
Задание
Разработать БД «Книги», система управления которой предназначена для автоматизации работы крупного оптового поставщика книг.
Исходные данные и условия
Первоначальный вариант БД будет содержать три таблицы:
· В таблице FIRMS будут храниться все нужные сведения о партнерах — с указанием юридического адреса, контактных лиц, телефонов и полного названия каждого партнера. В этой же таблице следует хранить суммарный долг каждого покупателя (или каждому поставщику - сальдо ).
· В таблице BOOKS разместить полные сведения о каждой книге, хотя бы раз купленной у какого-либо поставщика.
· Таблица NAKLS предназначена для хранения сведений о накладных. Поля в ней - дата отгрузки или получения партии книг, тип накладной (на покупку или продажу, с возвратом ранее проданных/купленных книг), наименование партнера, общая сумма накладной и т. п.
Таким образом, таблица NAKLS будет центральной . Она должна иметь уникальное поле, которое однозначно определяет каждую накладную.
В дальнейшем по этому полю создадим первичный ключ, чтобы СУБД могла быстро найти нужную накладную.
· Каждой записи в NAKLS будет соответствовать произвольное количество записей в таблице BOOK (связь один ко многим).
· В таблице NAKLS будет также ссылка на уникальный идентификатор партнера из таблицы FIRMS.
Описание основных таблиц БД Книгторг:
Таблица NAKLS
Имя поля |
Назначение |
||
NaklID |
+ |
Уникальный идентификатор накладной. По этому полю создать первичный ключ, поэтому суффикс - ID |
|
NDate |
D |
Дата составления накладной. По этому полю создать индекс для сортировки накладных по мере их поступления |
|
NType |
S |
Тип накладной: 0 —покупка у поставщика; 1 —продажа покупателю; |
|
NBook |
S |
Уникальный код книги (поле BookID таблицы Books) |
|
NFirm |
S |
Уникальный идентификатор партнера (поле FirmID таблицы FIRMS) |
|
NPayedSum |
$ |
Оплаченная сумма. |
|
Таблица BOOKS
Имя поля |
Назначение |
||
BookID |
+ |
Уникальный код книги (первичный ключ) |
|
BName |
A |
70 |
Название книги (индексное поле) |
BAuthor |
A |
40 |
Автор(ы) |
BPublish |
A |
40 |
Издательство |
BYear |
S |
Год выпуска |
|
BPages |
S |
Количество страниц |
|
BISBN |
A |
25 |
Код ISBN |
BStand |
S |
Стандарт упаковки - количество книг в пачке |
|
BQuan |
S |
Остаток книг на складе |
|
BPrice |
$ |
Цена покупки книги |
|
BRozn |
$ |
Цена продажи |
Таблица FIRMS
Имя поля |
Назначение |
||
FirmID |
+ |
Уникальный идентификатор партнера (первичный ключ) |
|
FName |
A |
50 |
Наименование партнера (индексное поле) |
FAddress |
A |
70 |
Адрес |
FCity |
A |
25 |
Город |
FPhone |
A |
30 |
Телефон(ы) |
FEMail |
A |
20 |
Адрес электронной почты |
FPerson |
A |
50 |
Контактное лицо (лица); |
FFinDelta |
$ |
Финансовое сальдо |
|
Рекомендации по именам таблиц и полей
1. В файл-серверных БД имя таблицы совпадает с именем файла, в котором размещаются все содержащиеся в ней данные. Не следует использовать русскоязычные названия таблиц, т.к. кириллицу нельзя использовать в SQL и если приходится использовать SQL-запросы, это может затруднить их формирование. По этой же причине не следует использовать кириллицу в именах полей.
2. В именах полей полезно ставить префикс из одной - двух букв названия таблицы (в таблице NAKLS все имена начинать с «N», в FIRMS — с «F» и т. п.). Это исключит вероятность того, что вы случайно назовете поле одним из зарезервированных в SQL слов и просто не сможете составить нужный запрос.
Порядок выполнения
В файл-серверных БД все таблицы размещаются в одном каталоге (папке).
Поэтому перед созданием БД надо создать ее каталог C:\Мои документы\BIBLDATA.
Создание таблиц файл-серверных БД осуществляется с помощью утилиты Database Desktop (DBD), входящей в комплект поставки Delphi.
1. Запустить DBD с помощью команды Пуск Программы Borland Delphi Tools Database Desktop (если вы работаете в среде Delphi, для запуска используйте команду Database Desktop главного меню).
2. Настроить рабочий каталог утилиты. Выберите (в DBD) команду File Working Directory и установите в появившемся окне ссылку на каталог C:\ Мои документы\BIBLDATA (рис. 1.3).
3. Создать таблицу NAKLS. Для этого выберите команду File New Table. DBD откроет окно Create Table, в котором надо выбрать тип таблицы. Тип таблицы Paradox можно считать наилучшим для файл-серверных таблиц: щелчком на кнопке ОК согласитесь с вариантом Paradox7. На экране появится окно (рис. 1.4), предназначенное для создания/редактирования структуры таблицы.
Каждому полю создаваемой таблицы соответствует одна запись в таблице Field roster этого окна: в колонку Field Name нужно поместить имя поля, в колонку Туре — символ, определяющий тип хранимых в поле данных, в колонку Size — число, определяющее длину поля (требуется не для всех), если по значениям поля нужно построить первичный ключ, то в колонку Key — звездочку -*.
Рис. 1.3. Установка рабочего каталога
Рис. 1.4. Окно создания структуры таблицы
4. Введите название первого поля NaklID (первый символ названия поля для таблиц Paradox DBD всегда вводится прописным). Нажмите клавишу таб для перехода к следующей колонке. Нажмите клавишу пробела и утилита DBD покажет список возможных типов, и выберите в нем тип Autoincrement. Поля автоинкрементного типа служат для создания уникального числа, однозначно определяющего запись: для первой записи в это поле будет автоматически помещено число 1, для второй — 2 и т. д. (При удалении какой-либо записи выделенное для нее число не используется вновь). Нажмите клавишу пробела, чтобы создать по полю первичный ключ.
5. Продолжить ввод полей таблицы NAKLS, как показано на рис. 1.5. Для первых четырех полей установите флажок Required Field (означает, что при вводе очередной записи в эти поля обязательно должны быть помещены значения — за этим будет следить BDE). Другие поля могут не определяться в момент ввода очередной записи.
Рис. 1.5. Структура полей таблицы NAKLS (в нашем случае несколько отличается)
6. По полю NDate нужно определить индекс (вторичный). Для этого раскройте список Table Properties в правом верхнем углу окна, выберите пункт Secondary Indexes и щелкните на появившейся кнопке Define. В окне Define Secondary Index (рис. 1.6) в списке полей таблицы выделить поле NDate и перенести (щелчком на кнопке) поле в список Indexed Fields.
Рис. 1.6. Определение индексного поля (полей)
С помощью флажков группы Index options можно определить следующие особенности индекса:
Unique — индекс будет содержать уникальные значения;
Maintained — индексные поля сортируются по возрастанию значений;
Case sensitive — индекс чувствителен к регистру букв в текстовых полях;
Descending — индексные поля сортируются по убыванию значений.
В нашем случае (а также при определении индексов в других таблицах демонстрационной БД) оставить эти флажки без изменений и щелкнуть - ОК.
DBD запросит имя индекса (в таблицах Paradox, как и в большинстве серверов БД, индексы именуются) — введите строку Nakls_date и щелкните на кнопке ОК. Во вновь появившемся окне определения структуры таблицы щелкните на кнопке Save as и затем укажите имя файла — Nakls.
Таким образом, создали таблицу NAKLS.
7. Руководствуясь описанием полей, самостоятельно создать остальные таблицы учебной БД.
8. Заполнить таблицы содержанием так, чтобы число записей о книгах в таблице BOOKS было 50, а в остальных не менее 5.
9. Сохранить базу данных в указанном каталоге.
Тема: Формирование таблиц для размещения данных ИС
Упражнения 02-01
Задание 1
Создать в ACCESS простую базу данных со сведениями о сотрудниках некоторой организации.
Порядок выполнения
1. Открыть ACCESS, создать новую базу с именем Employee1 и сохранить ее в отдельной вложенной папке (MY_Access). Создать таблицу, содержащую набор полей в соответствии с рис. 1, и пять записей (далее будем расширять) с произвольными значениями атрибутов. Сохранить таблицу, как отдельную с именем Исходн_данн, но в составе базы данных.
2. На основе этой простой таблицы сконструировать простую базу данных Employee1, приведенную к третьей нормальной форме (таблицы Name, Empl, Post) и сохранить ее.
Имя поля должно иметь префикс по начальной букве названия таблицы (т.е одинаковые поля в разных таблицах будут отличаться префиксом, например, N_Id и E_Id –код физического лица в разных таблицах). Рекомендуемые названия полей приведены в таблице 1.
Таблица 1
Содержание |
Имя поля (в таблице к имени добавить префикс) |
Тип |
Код физ. Лица |
Id |
|
Имя |
Name |
Символьный |
Отчество |
Patronymic |
Символьный |
Фамилия |
Surname |
Символьный |
Пол |
Sex |
Логический |
Дата рождения |
Birthday |
Дата |
Почтовый индекс |
Index |
Числовой |
Город |
City |
Символьный |
Улица, дом, кв |
Street |
Символьный |
Телефон |
Fone |
Символьный |
Код сотрудника |
IdEmpl |
|
Код должности |
IdPost |
|
Рейтинг |
Rating |
Числовой короткий |
Дата приема |
AdmissData |
Дата |
Дата увольнения |
DismissData |
Дата |
Должность |
Post |
Символьный |
Разряд |
Sort |
Числовой короткий |
Зарплата |
Salary |
Денежный |
Примечание
В целях упрощения создания программ обращения к данным, изучаемым в последующих заданиях, все типы полей (кроме ключевых полей и поля для обозначения пола) для учебных заданий, первоначально зададим как символьные.
3. Заполнить базу Employee1 записями в количестве 20 строк.
Задание 2
Создать в Delphi с помощью утилиты Database Desktop базу данных, в соответствии с требованиями Задания 1 и сохранить ее под именем Employee2 в отдельной папке в том же что и ранее разделе.
Порядок выполнения
Создание таблиц
В файл-серверных БД все таблицы размещаются в одном каталоге (папке).
Поэтому перед созданием БД надо создать ее каталог C:\Мои документы\My_DATA.
Создание таблиц файл-серверных БД осуществляется с помощью утилиты Database Desktop (DBD), входящей в комплект поставки Delphi.
10. Запустить DBD с помощью команды Пуск Программы Borland Delphi Tools Database Desktop (если вы работаете в среде Delphi, для запуска используйте команду Database Desktop главного меню).
11. Настроить рабочий каталог утилиты. Выберите (в DBD) команду File Working Directory и установите в появившемся окне ссылку на каталог C:\Мои документы\My_DATA (рис. 1.3).
Рис. 1.3. Установка рабочего каталога
12. Создание таблицы. Выберите команду File New Table. DBD откроет окно Create Table, в котором надо выбрать тип таблицы. Тип таблицы Paradox можно считать наилучшим для файл-серверных таблиц: щелчком на кнопке ОК согласитесь с вариантом Paradox. На экране появится окно (рис. 1.4), предназначенное для создания/редактирования структуры таблицы.
Каждому полю создаваемой таблицы соответствует одна запись в таблице Field roster этого окна: в колонку Field Name нужно поместить имя поля, в колонку Туре — символ, определяющий тип хранимых в поле данных, в колонку Size — число, определяющее длину поля (требуется не для всех), если по значениям поля нужно построить первичный ключ, то в колонку Key — звездочку -*.
Рис. 1.4. Окно создания структуры таблицы
13. Введите название первого поля - Id (первый символ названия поля для таблиц Paradox DBD всегда вводится прописным). Нажмите клавишу таб для перехода к следующей колонке. Нажмите клавишу пробела и утилита DBD покажет список возможных типов, и выберите в нем тип Autoincrement. Поля автоинкрементного типа служат для создания уникального числа, однозначно определяющего запись: для первой записи в это поле будет автоматически помещено число 1, для второй — 2 и т. д. (При удалении какой-либо записи выделенное для нее число не используется вновь). Нажмите клавишу пробела, чтобы создать по полю первичный ключ.
14. Продолжить ввод полей таблицы, как показано на рис. 1.5. Для первых четырех полей установите флажок Required Field (означает, что при вводе очередной записи в эти поля обязательно должны быть помещены значения — за этим будет следить BDE). Четыре других поля могут не определяться в момент ввода очередной записи.
Рис. 1.5. Структура полей таблицы NAKLS
15. Для установления вторичного индекса раскройте список Table Properties в правом верхнем углу окна, выберите пункт Secondary Indexes и щелкните на появившейся кнопке Define. В окне Define Secondary Index (рис. 1.6) в списке полей таблицы выделить нужное поле, здесь например поле NDate, и перенести (щелчком на кнопке) поле в список Indexed Fields.
Рис. 1.6. Определение индексного поля (полей)
С помощью флажков группы Index options можно определить следующие особенности индекса:
Unique — индекс будет содержать уникальные значения;
Maintained — индексные поля сортируются по возрастанию значений;
Case sensitive — индекс чувствителен к регистру букв в текстовых полях;
Descending — индексные поля сортируются по убыванию значений.
В нашем случае (а также при определении индексов в других таблицах демонстрационной БД) оставить эти флажки без изменений и щелкнуть - ОК.
DBD запросит имя индекса (в таблицах Paradox, как и в большинстве серверов БД, индексы именуются) — введите имя с суффиксом _date и щелкните на кнопке ОК. Во вновь появившемся окне определения структуры таблицы щелкните на кнопке Save as и затем укажите имя файла.
Таким образом, создали первую таблицу.
16. Руководствуясь описанием полей, самостоятельно создать остальные таблицы учебной БД Employee2.
17. Заполнить базу Employee2 записями в количестве 20 строк.
Упражнения ПрИС 02-02
Этот учебный файл без изменений сохранять в отдельном файле, а файлы таблиц с выполняемой самостоятельно работой под своим именем сохранять отдельно во вложенной в папку MyDATA папке с именем FoxPro_Vet1.
На занятия всем слушателям приносить личные сменные носители данных и в конце занятий копировать на них выполняемые задания.
Работа с Fox Pro
Интерфейс
Ознакомиться с интерфейсом по тексту приложения (см. ниже) Интерфейс Fox Pro.
Упражнения
Цели и задачи упражнений
Создать базу данных ветеринарной клиники для учета домашних животных и их посещения ветеринара (табл. 1).
Базу данных будем создавать в проекте с именем Vet_1.
Порядок выполнения
Концептуальная модель базы данных
Концептуальная модель базы данных, на примере которой будет описываться работа с данным программным продуктом, представлена на рис. 1. Концептуальная модель включает три объекта и две бинарные связи типа один ко многим.
Рис. 1. Концептуальная модель базы данных
Задание 1.
Создать и сохранить проект под именем Vet_1 (Порядок создания проекта с помощью мастера описан ниже в разделе Справочные сведения).
В соответствии с концептуальной моделью создать структуру для трех таблиц, как основу базы данных.
Создание структуры таблиц базы данных с помощью Конструктора (Database Designer).
Конструктор базы данных позволяет создавать, модифицировать и удалять базы данных, устанавливать постоянные межтабличные связи.
Для этого будет задействовано 3 таблицы — Pets, Journal, Owners (технология их создания описана несколько позже). В первой таблице будет храниться информация о животном: уникальный идентификационный номер ( Id) , кличка ( Name), имя владельца ( Owner), биологический вид, к которому это животное относится ( Genue), и дата его рождения ( Birth).
В таблице Journal будет сохраняться информация о посещении животным ветеринарного врача, в ней будут указываться дата посещения ( VisitDate), уникальный идентификационный номер животного ( Id) , причина посещения ( Reason) и заключение, сделанное врачом в результате посещения ( Result).
В третьей таблице Owners будет указываться информация о владельце животного, его телефон и адрес.
Типы и размеры полей для каждой таблицы БД (здесь типы указаны в скобках начальной буквой).
Таблица 1. Таблицы базы данных
Имя таблицы |
Имена полей и их типы |
Pets |
id (I) |
Name (C20) |
|
Owner (C20) |
|
Genue (C20) |
|
Birth (D) |
|
Journal |
VisitDate (D) |
id (1) |
|
Reason(C200) |
|
Result (C200) |
|
Owners |
Owner (C20) |
Tel (C20) |
|
Addres (C50) |
Запустить Visual Fox Pro.
Для начала выполним команду New из меню File. В результате чего откроется диалоговое окно New (рис. 2).
Рис. 2. Диалоговое окно New
В нем необходимо выбрать Database и нажать кнопку New file. В этом случае открывается стандартный диалог сохранения файла, с помощью которого следует сохранить файл базы данных в нужной (указанной в начале) папке диска. После чего по нажатию кнопки Save открывается окно Database Designer .
Рис. 3. Окно Database Designer
Выберем в системном меню Visual FoxPro подменю Database (рис. 3, а его команды отражены ниже в приложении табл. П.3).
Для создания новой таблицы в меню Database выбираем соответствующий пункт ( New Table), кроме этого можно нажать соответствующую кнопку на плавающей панели инструментов (рис. 4).
Рис. 4. Панель инструментов Database Designer
В появившемся диалоге выбираем ( New Table), после чего сохраняем файл таблицы под именем Pets в каталоге с базой. На экране появляется окно, изображенное на рис. 5 (пока вид несколько другой, т.к. в данном случае уже приведены результаты заполнения).
На вкладке Fields заполняем (в соответствии с данными для Pets см. табл. 1)имя столбца ( Name), его тип (Туре), размер ( Width), десятичную часть ( Decimal), тип сортировки по этому столбцу ( Index), а также указываем — допустимо ли значение Null ( т.е. можно ли оставлять это поле пустым, незаполненным).
Примечание
Кроме того, здесь же (в группе Display) можно задать формат вывода ( Format), маску ввода ( Input mask), заголовок ( Caption).
В группе Field validation задаются параметры проверки правильности ввода, а именно:
Rule — правило проверки.
Message — сообщение проверки.
Default value — значение по умолчанию.
Рис. 5. Окно Table Designer
Заглавные буквы в именах полей игнорируются. При нажатии Enter структура таблицы сразу отображается в Data Base Designer. Вернуться в Table Designer можно с помощью опции Modify.. из контекстного меню, открывающегося по клику правой кнопки на образе таблицы.
Аналогичным образом, на основе имеющихся данных о структуре базы данных и принципах создания таблиц, создать структуру (набор полей с указанием их типов и параметров) других таблиц базы (Journal и Owner).
Задание 2.
Наполнить предварительно базу данных произвольно вымышленными данными для 6 животных, принадлежащих 4 хозяевам.
Заполнение базы данных
Заполнение базы данных с точки зрения проведения процесса является одной из наиболее легких операций в работе с базами данных. Чтобы начать вводить данные, необходимо дважды щелкнуть мышью на заголовке таблицы в Database Designer (вид на рис. 10). Для ввода данных использовать опцию Append Mode. Следует учесть, что предложенный на данном этапе метод заполнения таблиц удовлетворяет лишь в том случае, когда производится тестирование базы данных. Для рабочего заполнения базы данных (а то выполняется в процессе ее эксплуатации) используются формы, создание которых будет рассмотрено ниже.
Рис. 10. Ввод данных
Для настройки вида формы ввода используется меню View. На рисунке представлен табличный вид, именуемый Browse (Обзор).
Тема
Установление связей между таблицами
Теория – см файл организация межтабличных связей
Задание 1.
БД Employee1, ранее созданную в Access дополнить полем «пол» (логического типа) и выполнить организацию связей в соответствие с приведенным примером рис.7.
Рис. 7. Пример структуры базы данных в третьей нормальной форме
Связи таблиц в СУБД Fox Pro
Задание 2.
Создать схему данных базы Vet_1 путем установления межтабличных связей в соответствии с концептуальной моделью (рис. 1 в файле Практич_ИС_02_02).
Создание постоянных межтабличных связей
Для создания межтабличных связей необходимо создать индексы, отображенные на рис.8. Если в таблицах ранее Вы установили индексы для лишних полей, то их можно удалить при изменении выбранной таблицы (опция Modify). Технология создания индексов (в данном случае важны первичные ключи) приведена в Справочных сведениях (см. ниже).
Рис. 8. Индексы БД
В области каждой таблицы в окне Database Designer указывается информация о наличии индексов. Primary - индекс отмечен значком ключа слева от названия индекса и может быть использован для создания межтабличных связей и проверки целостности БД.
Постоянные связи, о которых идет речь, автоматически устанавливаются при открытии таблиц.
Условия установления постоянных связей:
1. Одна из связываемых таблиц является родительской, другая дочерней.
2. Для родительской таблицы должен быть определен первичный ключ (Primary) или ключ-кандидат (Candidate).
3. Для дочерней таблицы индекс может быть не уникальным, по этому индексу дочерняя таблица будет связываться с родительской.
Для установки межтабличной связи необходимо выделить Primary-ключ родительской таблицы и перетащить его на соответствующий индекс дочерней таблицы. В случае успешного проведения данной операции произойдет установление межтабличной связи, что будет графически отражено в Database Designer так, как это показано на рис. 9.
Рис. 9. Установление межтабличных связей
Задание 3.
- Создать в Fox Pro базу данных Employee3 (дополнив соответствующую таблицу полем «пол») с полями указанными в упражнении Практич ИС_02_01.
- Заполнить базу Employee3 записями в количестве 20 строк.
- Установить соответствующие связи между таблицами.
Задание 4.
Открыть ранее созданную базу данных Employee2 в программе Data Base Desktop (дополнив соответствующую таблицу полем «пол») и установить межтабличные связи (см. приложение) в соответствии с вышеуказанными данными.
Примечание.
Здесь установление связей отличается от методики, рассмотренной в заданиях 1 и 2, и не отражается в виде наглядной схемы данных.
Вопросы по теме
- Для чего нужны связи?
- Между какими элементами БД могут быть установлены связи?
- Каковы условия для организации связей?
- Чем отличается база данных от набора таблиц?
Тема
Ввод, вывод и редактирование данных с помощью инструментов Delphi
Ч.I. Технология BDE
Упражнения 02-4
Этот учебный файл без изменений сохранять в отдельном файле, а файлы таблиц с выполняемой самостоятельно работой под своим именем сохранять отдельно во вложенной папке с именем Delphi_BD. Оба объекта и все другие рабочие файлы сохранять в папке Временная_02, которую поместить в папку Мои документы.
Для уяснения особенностей использования различных технологий доступа к данным, полезно ознакомиться с материалом Дополнения (см. в конце этого файла).
Задание 1
Создать с помощью Delphi ленточную форму (в виде вертикального списка), осуществляющую доступ к данным через механизм BDE и работу с полями таблицы Name (Физические лица) базы данных Employee2 (см. упражнения ПрактичИС_02_01).
Дополнительные условия
Для просмотра и редактирования данных, содержащихся в таблице, будем использовать окна строчного редактора (компоненты типа Edit). Таким образом, в целях упрощения (чтобы избежать преобразования типов данных), тип полей таблицы Name, которые будут выводиться в форме, должен быть текстовым:
«Фамилия», «Имя», «Отчество», «Телефон», «Адрес», «Дата рождения» — текстовые поля;
«Пол» — поле типа Boolean.
Окончательный вид формы приложения для работы с таблицей базы данных может, например, иметь вид показанный на рис.1.
Для отображения текстовых полей использовать компоненты DBEdit. Логические поля удобнее отображать с помощью флажков — компонентов DBCheckBox. Кроме того, на форму необходимо поместить элемент DBNavigator для обеспечения навигации по набору данных, а также элементы Label, с помощью которых пояснить назначение полей ввода.
Порядок выполнения
1. Для создания нового приложения выполните команду File New Application. Так как мы работаем только с одной таблицей, то компоненты доступа к данным можно поместить прямо на форму. Для доступа к данным в этом задании будем использовать технологию BDE.
2. Используя вкладку BDE палитры компонентов, разместите на форме невизуальный компонент DBTable. Затем перейдите в палитре компонентов на вкладку Data Access и установите на форму компонент DataSource (DB), который необходим для связи набора данных BDE с компонентами визуализации данных.
3. С помощью инспектора объектов укажите в свойстве DataSet имя объекта (оставить предложенное по умолчанию — Tablel).
4. Выделите на форме компонент DBTable и затем в поле ввода свойства DatabaseName в ниспадающем меню выберите имя алиаса, связанного с таблицами данных (для базы должен был быть создан алиас (авторский был DBNew2), иначе ее нельзя подключить через BDE).
5. К компоненту DBTable необходимо подключить нужную таблицу базы данных. Для этого выделим на форме компонент DBTable и затем в поле ввода свойства TableName в инспекторе объектов укажем имя используемой таблицы —«Name1».
6. Поместить на форму семь-девять (по числу полей редактируемой таблицы) компонентов полей ввода и редактирования данных DBEdit, компонент DBCheckBox (для ввода значения пол) и компоненты Label для обозначения названия полей.
Примерный вид формы (уже на этапе выполнения) показан на рис. 02.04.1.
Рис.02.04.1. Форма для ввода вывода и модификации записей таблицы Name1.
7. Для настройки элементов визуализации полей базы данных (семь полей ввода DBEdit и флажок DBCheckBox) и элемента навигации по набору данных (DBNavigator, назначение кнопок и свойства его см. ниже в Приложении) укажем имя источника данных в инспекторе объектов в свойстве DataSource (оставить по умолчанию — DataSourcel), а в свойстве DataField для каждого поля ввода укажем имя поля набора данных (выбрать имя поля из предложенного списка), с которым связывается элемент отображения и редактирования данных.
8. Для визуализации следует реализовать процедуры открытия и закрытия набора данных. Набор данных должен открываться при запуске приложения и закрываться при его завершении. Для открытия набора данных используется метод Open класса BDETablе, для закрытия — метод Close того же класса. Для выполнения этого перейти на главную форму во вкладку Events инспектора объектов и по двойному клику в обработчике события OnShow вставить в открывшемся редакторе кодов вставить Table1.Open, а в обработчике OnClose метод Table1.Close.
Текст модуля разработанной формы приведен в листинге 02.1 (только для справки).
9. Сохранить проект в отдельной вложенной папке и запустить его на выполнение (напомним, что при этом автоматически откомпилированное приложение будет помещено в эту же папку).
Листинг 02.1.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, DB, DBTables;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBCheckBox1: TDBCheckBox;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button1: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.Close
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Table1.Open
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close
end;
end.
Задание 2
Создать с помощью Delphi табличную форму, осуществляющую работу со всеми полями базы данных таблицы Name через механизм доступа BDE.
Порядок выполнения
1. Для создания нового приложения выполните команду File New Application. Так как мы работаем только с одной таблицей, то компонентDBGrid -таблицу доступа к данным поместим прямо на форму.
2. Используя вкладку BDE палитры компонентов, разместите на форме компонент DBTable. Затем перейдите в палитре компонентов на вкладку Data Access и установим на форму компонент DataSource, который необходим для связи набора данных BDE с компонентами визуализации данных.
3. С помощью инспектора объектов для компонента DataSource укажите в свойстве DataSet имя объекта (можно оставить по умолчанию — Tablel).
4. Выделите на форме компонент DBTable и затем в поле ввода свойства DatabaseName в ниспадающем меню выберите имя алиаса, связанного с таблицами данных (для базы должен был быть создан алиас, иначе ее нельзя подключить через BDE).
5. Далее необходимо подключить к компоненту DBTable таблицу базы данных.
Выделите на форме компонент DBTable и затем в поле ввода свойства TableName в инспекторе объектов укажите имя используемой таблицы —«Name1».
6. Вывод данных будем осуществлять с помощью компонента DBGrid из вкладки палитры компонентов DataControls. Для этого поместим этот компонент на форму и отредактируем в инспекторе объектов свойство DataSource – оставим имя источника данных по умолчанию DataSourcel.
7. Для визуализации следует реализовать процедуры открытия и закрытия набора данных. Набор данных должен открываться при запуске приложения и закрываться при его завершении. Для открытия набора данных используется метод Open класса BDETablе, для закрытия — метод Close того же класса. Для выполнения этого перейти на главную форму во вкладку Events инспектора объектов и по двойному клику в обработчике события OnShow вставить в открывшемся редакторе кодов вставить Table1.Open, а в обработчике OnClose метод Table1.Close.
Текст модуля разработанной формы приведен в листинге 02.2.
Общий вид окна работающего приложения показан на рис. 02.04.2.
Рис. 02.04.2. Пример размещения таблицы и элементов управления на простой форме
8. Сохранить проект в отдельной (и от проектов других заданий) вложенной папке и запустить его на выполнение (напомним, что при этом автоматически откомпилированное приложение будет помещено в эту же папку).
Листинг 02.2
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables, StdCtrls;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Button1: TButton;
Label1: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.Close
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Table1.Open
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close
end;
end.
Тема
Обращение с помощью Delphi к таблицам баз данных для ввода, вывода и редактирования данных
Ч.II. Технология ADO, доступ к Access
Упражнения 02-5
Этот учебный файл без изменений сохранять в отдельном файле, а файлы таблиц с выполняемой самостоятельно работой под своим именем сохранять отдельно во вложенной папке с именем Delphi_BD. Оба объекта и все другие рабочие файлы сохранять в папке Временная_02, которую поместить в папку Мои документы.
На занятия всем слушателям приносить личные дискеты и в конце занятий копировать на них выполняемые задания.
Для уяснения особенностей использования различных технологий доступа к данным, полезно ознакомиться с материалом Дополнения (см. в конце этого файла).
Задание 1
Создать с помощью Delphi ленточную форму (в виде списка), осуществляющую доступ к данным Access через механизм ADO и работу с полями таблицы Name1 (Физическое лицо) ранее созданной базы данных Employee1 (см. упражнения ПрактичИС_02_01).
Дополнительные условия
Для просмотра и редактирования данных, содержащихся в таблице будем использовать окна строчного редактора (компоненты типа Edit). Таким образом, в целях упрощения (чтобы избежать преобразования типов данных), тип полей таблицы Name1, которые будут выводиться в форме, должен быть текстовым:
«Фамилия», «Имя», «Отчество», «Телефон», «Индекс», «Город», «Адрес», «Дата рождения» — текстовые поля;
«Пол» — поле типа Boolean.
Для отображения текстовых полей и поля «Дата рождения» будем использовать компоненты TDBEdit. Логические поля удобнее отображать с помощью флажков — компонентов TDBCheckBox. Кроме того, на форму необходимо поместить элемент TDBNavigator для обеспечения навигации по набору данных, а также несколько обычных элементов TLabel, с помощью которых будем пояснять назначение полей ввода.
Порядок выполнения
1. Запустить Delphi
2. Для создания нового приложения выполните команду File New Application (при запуске открывается по умолчанию). Компоненты доступа к данным можно поместить прямо на форму. При работе с базами данных MS Access для доступа к данным следует использовать технологию ADO. Используя вкладку ADO палитры компонентов, разместите на форме компонент TADOTable. Затем перейдите в палитре компонентов на вкладку Data Access и установите на форму компонент TdataSource, который необходим для связи набора данных ADO с компонентами визуализации данных.
3. Далее необходимо подключить к компоненту TADOTable таблицу «Sotruniki_1» базы данных Employee1.mdb.
Выделите на форме компонент TADOTable и щелкните на кнопке с многоточием в поле ввода свойства ConnectionString в инспекторе объектов.
4. В открывшемся окне диалога ConnectionString (рис. 02.5) выберите переключатель Use Connection String и щелкните на кнопке Build.
Рис. 02.5. Окно диалога Connection String
5. На вкладке Provider открывшегося окна диалога Data Link Properties задайте вид соединения с базой данных — Microsoft Jet 4.0 OLE DB Provider (рис. 02.6).
Рис. 02.6. Задание вида соединения с базой данных
6. Укажите имя подключаемой базы данных в поле ввода Select or enter a database name на вкладке Connection окна диалога Data Link Properties (рис. 02.7) и щелкните на кнопке Test Connection, чтобы убедиться, что база данных подключена корректно. Закройте окна подключения базы данных (OK, OK, OK).
Рис. 02.7. Задание базы данных, с которой устанавливается связь
7. Далее необходимо указать используемую таблицу. Выделите на форме компонент TADOTable и в поле ввода свойства TableName в инспекторе объектов укажите имя используемой таблицы –Name_1.
8. Следующий этап — настройка связи источника данных с набором данных. Щелкните на компоненте TDataSource и в свойстве DataSet инспектора объектов укажите имя объекта TADOTable (по умолчанию — ADOTable1).
9. Вернитесь в палитру компонентов Data Controls и разместите на форме необходимые элементы - визуализации полей базы данных (TDBEdit) и управления(TDBNavigator). Выполните их размещение на форме и настройку. Примерный вариант размещения компонентов показан на рис. 02.8.
Рис. 02.8. Пример размещения элементов управления на простой форме
10. Для настройки элементов и элемента навигации по набору данных отредактируйте в инспекторе объектов их свойство DataSource - укажите имя источника данных (по умолчанию — DataSourcel) и имя поля набора данных (DataField) для каждого окна, с которым связывается элемент отображения и редактирования данных.
11. Для завершения процесса необходимо реализовать процедуры открытия и закрытия набора данных. Набор данных должен открываться при запуске приложения и закрываться при его завершении. Для открытия набора данных используется метод Open класса TADOTablе (команда ADOTable1.Open), для закрытия — метод Close того же класса (ADOTable.Close). Для реализации методов, необходимо записать соответствующие команды в обработчике события OnShow главной формы и в обработчике OnClose (открываются по двойному клику на поле значений соответствующего свойства объекта (в данном случае Form1). Текст модуля разработанной формы приведен в листинге 02_5.1.
12. Сохраните файлы проекта в отдельной вложенной папке и запустите программу на выполнение (напомним, что при этом автоматически откомпилированное приложение будет помещено в эту же папку). Внешний вид окна программы приведен на рис. 02.9. (окно с указанием страны можно исключить).
Рис.02.9. Форма для ввода вывода и модификации записей таблицы Name1.
Добавьте кнопку выхода из программы.
13. Внимательно разобраться со всеми выполняемыми операциями, подготовиться к ответам на вопросы и персонально выполненную работу предъявить преподавателю.
Листинг 02_5.1. Главный модуль приложения с простой формой для ввода данных
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, ExtCtrls, Mask, DB, ADODB;
type
TForm1 = class(TForm)
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBNavigator1: TDBNavigator;
DBCheckBox1: TDBCheckBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADOTable1.Close
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ADOTable1.Open
end;
end.
Задание 2
Создать с помощью Delphi табличную форму, осуществляющую работу со всеми полями таблицы Name1 ранее созданной базы данных Employee3 через механизм доступа ADO .
Порядок выполнения
1. Так как мы работаем только с одной таблицей, то таблицу доступа к данным будем помещать прямо на форму. Для создания нового приложения выполните команду File New Application.
2. Используя вкладку ADO палитры компонентов, разместите на форме компонент DBTable. Затем перейдите в палитре компонентов на вкладку Data Access и установим на форму компонент DataSource, который необходим для связи набора данных с компонентами визуализации данных.
3. С помощью инспектора объектов для компонента DataSource укажите в свойстве DataSet имя объекта (можно оставить по умолчанию — Tablel).
4. Далее необходимо подключить к компоненту DBTable таблицу базы данных.
Выделите на форме компонент DBTable и затем в поле ввода свойства TableName в инспекторе объектов укажите имя используемой таблицы —«Sotrud_1».
5. Вывод данных будем осуществлять с помощью компонента DBGrid из вкладки палитры компонентов DataControls. Для этого поместим этот компонент на форму и отредактируем в инспекторе объектов свойство DataSource – оставим имя источника данных по умолчанию DataSourcel.
6. Для визуализации следует реализовать процедуры открытия и закрытия набора данных. Набор данных должен открываться при запуске приложения и закрываться при его завершении. Для открытия набора данных используется метод Open класса BDETablе, для закрытия — метод Close того же класса. Для выполнения этого перейти на главную форму во вкладку Events инспектора объектов и по двойному клику в обработчике события OnShow вставить в открывшемся редакторе кодов вставить Table1.Open, а в обработчике OnClose метод Table1.Close.
Текст модуля разработанной формы приведен в листинге 02_5.2.
Общий вид окна работающего приложения показан на рис. 02.2.
Рис. 02.2. Пример размещения таблицы и элементов управления на простой форме
8. Сохранить проект в отдельной (и от проектов других заданий) вложенной папке и запустить его на выполнение (напомним, что при этом автоматически откомпилированное приложение будет помещено в эту же папку).
9. Внимательно разобраться со всеми выполняемыми операциями, подготовиться к ответам на вопросы и персонально выполненную работу предъявить преподавателю.
Листинг 02_5.2
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB;
type
TForm1 = class(TForm)
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADOTable1.Close
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ADOTable1.Open
end;
end.
Тема
Обращение к таблицам БД для ввода, вывода и редактирования данных
Упражнения 02-6
Этот учебный файл без изменений сохранять в отдельном файле, а файлы таблиц с выполняемой самостоятельно работой под своим именем сохранять отдельно во вложенной папке с именем Delphi_BD. Оба объекта и все другие рабочие файлы сохранять в папке Временная_02, которую поместить в папку Мои документы.
На занятия всем слушателям приносить личные дискеты и в конце занятий копировать на них выполняемые задания.
Для уяснения особенностей использования различных технологий доступа к данным, полезно ознакомиться с материалом Дополнения (см. в конце этого файла).
Работа с многотабличной БД (технология BDE)
Задание 1
Создать с помощью Delphi приложение для синхронного вывода и обработки данных из БД, где данные имеют формат .db. Рекомендуется использовать созданную ранее БД Employee2 (см. упражнения ПрактичИС_02_03).
Дополнительные условия
Для просмотра и редактирования данных, содержащихся в таблице будем использовать окна строчного редактора (компоненты типа Edit). Таким образом, в целях упрощения (чтобы избежать преобразования типов данных), тип полей таблицы Name1, которые будут выводиться в форме, должен быть текстовым:
«Фамилия», «Имя», «Отчество», «Телефон», «Индекс», «Город», «Адрес», «Дата рождения» — текстовые поля;
«Пол» — поле типа Boolean.
Для отображения текстовых полей и поля «Дата рождения» будем использовать компоненты TDBEdit. Логические поля удобнее отображать с помощью флажков — компонентов TDBCheckBox. Кроме того, на форму необходимо поместить элемент TDBNavigator для обеспечения навигации по набору данных, а также несколько обычных элементов TLabel, с помощью которых будем пояснять назначение полей ввода.
Порядок выполнения
1. Создать в Delphi с помощью утилиты Database Desktop базу данных, приведенную к третьей нормальной форме (таблицы Name, Empl, Post) и сохранить ее под именем Employee2 в отдельной папке в том же что и ранее разделе.
Для базы создать Алиас (см. приложение), иначе потом нельзя будет подключить формы и таблицы приложений BDE, ADO.
Имя поля должно иметь префикс по начальной букве названия таблицы (т.е одинаковые поля в разных таблицах будут отличаться префиксом, например, N_Id и E_Id –код физического лица в разных таблицах). Рекомендуемые названия полей приведены в таблице 1.
Таблица 1
Содержание |
Имя поля (в таблице к имени добавить префикс) |
Тип |
Name |
||
Код физ. Лица |
N_Id |
|
Имя |
N_Name |
Символьный |
Отчество |
N_Patronymic |
Символьный |
Фамилия |
N_Surname |
Символьный |
Пол |
N_Sex |
Логический |
Дата рождения |
N_Birthday |
Дата |
Почтовый индекс |
N_Index |
Числовой |
Город |
N_City |
Символьный |
Улица, дом, кв |
N_Street |
Символьный |
Телефон |
N_Phone |
Символьный |
Empl |
||
Код сотрудника |
E_IdEmpl |
|
Код должности |
E_IdPost |
|
Рейтинг |
E_Rating |
Числовой короткий |
Дата приема |
E_AdmissData |
Дата |
Дата увольнения |
E_DismissData |
Дата |
Post |
||
Код должности |
P_IdPost |
|
Должность |
P_Post |
Символьный |
Разряд |
P_Sort |
Числовой короткий |
Зарплата |
P_Salary |
Денежный |
Типы полей кода физического лица, кода сотрудника и кода должности выбрать в соответствии с логикой данных.
2. Заполнить базу на 25-30 записей физических лиц, по 6-8 должностей и несколько разрядов. Допускается использовать ранее созданные данные или данные из других БД.
3. Создать форму для синхронного вывода данных на основе технологии BDE. Дополнительные сведения по проектированию содержатся в Приложении.
Такая форма, например, может иметь вид, представленный на рис.06.1:
Рис.06.1. Форма для работы с синхронным изменением данных.
4. Отладить работу приложения и предъявить преподавателю.
Выборка данных
Одной из задач, наиболее часто возникающих при работе с базами данных, является выборка данных, то есть извлечение из базы данных информации, отвечающей ряду требований, заданных пользователем.
Упражнения 10-6-1
Этот учебный файл без изменений сохранять в отдельном файле, а файлы таблиц с выполняемой самостоятельно работой под своим именем сохранять отдельно во вложенной папке с именем Delphi_BD. Оба объекта и все другие рабочие файлы сохранять в папке Временная_05_06, которую поместить в папку Мои документы.
На занятия всем слушателям приносить личные дискеты и в конце занятий копировать на них выполняемые задания.
Проработать пример использования компонентов доступа к данным через SQL-запросы.
Задание 1
Используя механизм доступа к данным SQL из Delphi, создать табличную форму, и осуществить ее заполнение данными из указанной пользователем таблицы, находящейся в базе данных, созданной ранее с помощью Access.
Для уяснения особенностей использования различных технологий доступа к данным, полезно ознакомиться с материалом Приложения (см. в конце этого файла).
Порядок выполнения
Поскольку для доступа к базам данных MS Access удобнее применять технологию ADO, то в рассматриваемом примере будем использовать компонент TADOQuery.
Последовательность действий при осуществлении доступа к данным с использованием SQL-запросов примерно следующая:
1. Для создания нового приложения запустите Delphi и выполните команду File New Application.
2. Разместите на форме компоненты TADOQuery (используя вкладку ADO палитры компонентов) и TDataSource. Последний необходим для связи набора данных ADO с компонентами визуализации данных и расположен на вкладке Data Access палитры компонентов.
3. Подключите базу данных .mdb, созданную в Access на предыдущих занятиях. Для этого используйте свойство ConnectionString компонента TADOQuery.
Используйте ту же последовательность действий, что и на предыдущем занятии при подключении базы данных, для компонента TADOTable.
ПРИМЕЧАНИЕ-----------------------------------------------------------
В отличие от TADOTable класс TADOQuery не имеет свойств, в которых указывается связанная с ним таблица базы данных. При его использовании информация поступает в набор данных в результате выполнения SQL-запроса, заданного в свойстве SQL.
4. Для задания запроса щелкните на кнопке с многоточием в поле ввода свойства SQL в инспекторе объектов компонента ADOQuery1. При этом откроется окно простого текстового редактора, в котором формируется запрос. Сформируйте запрос, как показано на рис. 11.1. Его назначение состоит в возвращении выборки данных, содержащей все поля и все записи таблицы «Товары» базы данных.
5. Щелкните на кнопке Code Editor. Теперь текст запроса будет отображаться в окне редактора кода (рис. 11.2), причем ключевые слова языка SQL будут выделяться полужирным шрифтом, что снижает вероятность ошибок при написании запроса.
Рис. 11.1. Окно редактора SQL-запросов
Рис. 11.2. Текст SQL-запроса в редакторе кода
СОВЕТ-----------------------------------------------------------------—
При использовании компонента доступа к данным TQuery для задания SQL-запроса можно использовать визуальный редактор запросов SQL Builder, который вызывается командой SQL Builder контекстного меню компонента TQuery, помещенного на форму. Однако он плохо работает с базами данных, в которых имена полей заданы кириллицей (выдаются различные малопонятные сообщения об ошибках).
6. Выполните настройку источника данных TDataSource. Она производится так же, как и в случае использования компонента TADOTable — в свойстве DataSet указывается имя объекта доступа к данным (по умолчанию — ADOQuery1).
Далее необходимо разместить на форме необходимые элементы управления и выполнить их настройку.
7. Выберите следующие элементы:
компонент Memo, который будет использоваться для отображения и редактирования текста запроса;
компонент отображения данных TDBGrid — для отображения результатов выполнения запроса;
кнопка TButton — для подачи команды на выполнение запроса (назвать – Выполнить запрос).
Примерный вариант размещения на форме необходимых компонентов показан на рис.11.3.
8. Для настройки компонента визуализации полей базы данных TDBGrid в его свойстве DataSource укажите имя источника данных (по умолчанию — DataSource1).
9. Следующий этап — реализация процедур открытия и закрытия набора данных. Если в результате выполнения SQL-запроса возвращаются данные, для его выполнения необходимо воспользоваться методом Open класса TADOQuery.
Как и в предыдущем задании, данный метод следует выполнять при запуске приложения, например в обработчике события OnShow главной формы. При этом происходит выполнение запроса, заданного в свойстве SQL, а результаты его выполнения отобразятся в таблице DBGrid1.
10. При закрытии приложения следует, как и в предыдущем упражнении, закрыть и набор данных. Вызовите метод Close в обработчике события OnClose главной формы.
Рис. 11.3. Размещение элементов управления на форме
11. Для кнопки Выполнить запрос надо написать обработчик события OnClick. (Это понадобится в дальнейшем для возможности изменения текста запроса с последующим выполнением его без перекомпиляции программы). При нажатии на кнопку должен выполняться запрос (в результате выполнения запроса возвращаются данные). При нажатии на кнопку следует выполнить (запрограммировать) следующие действия:
проверить состояние набора данных; если набор данных открыт, то следует закрыть его;
передать текст запроса из компонента memSQL в свойство SQL компонента ADOQuery1;
открыть набор данных, вызвав метод Open компонента ADOQuery1.
Для справки текст (но не буквально, т.к. используются другие имена и есть незначительные ошибки, которые Вы не должны делать, если владеете предыдущим материалом ) для модуля разработанной формы приведен в листинге 11.1.
12. Сохраните файлы проекта в отдельной вложенной папке и запустите программу на выполнение (напомним, что при этом автоматически откомпилированное приложение будет помещено в эту же папку). После его запуска в компоненте DBGrid1 на форме отобразится информация, содержащаяся в таблице с указанным Вами именем из подключенной базы данных с расширением .mdb. Закройте приложение.
13. Для модификации приложения добавьте кнопку выхода из программы и проверьте работоспособность.
Вопросы к защите:
- Каким образом осуществляется связь с нужной базой данных?
- Каким образом осуществляется обращение к необходимой таблице?
Листинг 11.1. Главный модуль приложения
unit SQL_main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, Db, AOODB. StdCtrls, ExtCtrls. DBTables;
type
TfrmMain = class(TForm) ADOQueryl: TADOQuery;
DataSource1: TDataSource;
DBGridl: TDBGrid;
memSQL: TMemo: btnExecSQL: TButton;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure btnExecSQLClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation {$R *.DFM}
procedure TfrmMain.FormShow(Sender: TObject);
begin
memSQL.Lines.Clear;
memSQL.Lines,Assign(AOOQueryl.SQL);
end;
procedure TfrmMain.ForraClose(Sender: TObject;
var Action: TCloseAction);
begin
if ADOQueryl.Active then ADOQueryl.Close;
end;
procedure TfrmMain.btnExecSQLClick(Sender: TObject);
begin
if ADOQueryl.Active then ADOQueryl.Close;
ADOQueryl.SQL.Clear:
ADOQueryl.SQL.Assign(memSQL.Lines);
ADOQueryl.Open;
end;
end.
Упражнения 10-6-2
Введение
Задание условий при выборке данных
Для ограничения отбираемой из базы данных информации оператор SELECT позволяет использовать условие, которое задается с помощью предложения WHERE. В случае реализации условной выборки оператор SELECT имеет следующий вид:
SELECT {* | ALL | DISTINCT fieldl, field2..... fieidN}
FROM tablel {, table2..... tableN}
WHERE условие
Специальные операторы языка SQL, применяемые для задания условия, можно разделить на следующие группы:
операторы сравнения;
логические операторы;
операторы объединения;
операторы отрицания.
Результатом выполнения каждого из этих операторов является логическое значение (true или false). Если для некоторой записи оператор возвращает значение true, то запись включается в результат выборки, если false — не включается.
Задание 2
Лабораторная работа
- На основе задания изПрактич_ИС_10-5 Задание 2 создать базу данных из 25 – 30 строк.
- Составить задание с условиями на выборку данных и записать его в свой текстовый файл.
- Используя методику Задания 10-6 и материалы справки, реализовать с помощью SQL выборку данных из созданной по п.1. базы в соответствии с условиями, заданными в п.2. настоящей работы.
- Результаты выполнения работы предъявить преподавателю.