- •Прикладное программирование
- •Часть 1
- •Прикладное программирование
- •Часть 1
- •1. Информация о дисциплине
- •1.1. Предисловие
- •2.1. Рабочая программа (220 часов) Введение
- •Раздел 1. Технология программирования
- •Раздел 2. Ввод данных
- •1.2. Содержание дисциплины и виды учебной работы
- •1.2.2. Перечень видов практических занятий и контроля
- •2. Рабочие учебные материалы
- •Раздел 3. Управляющие окна
- •Раздел 4. Развитые компоненты
- •Раздел 5. Основные понятия субд
- •Раздел 6. Программирование баз данных
- •6.1. Невизуальные компоненты для построения бд
- •Раздел 7. Основные приёмы программирования бд
- •Раздел 8. Развитые приёмы программирования бд
- •Раздел 9. Интерфейс прикладного программирования api
- •Заключение
- •2.2. Тематический план изучения дисциплины
- •Тематический план для студентов заочной формы обучения
- •Структурно-логическая схема дисциплины «Прикладное программирование»
- •2.4. Временной график изучения дисциплины при использовании информационно-коммуникационных технологий
- •2.5. Практический блок
- •2.5.1. Практические занятия
- •2.5.2. Лабораторный практикум
- •2.5.2.1. Лабораторные работы для очной формы обучения
- •2.5.2.2. Лабораторные работы для очно-заочной формы обучения
- •2.5.2.3. Лабораторные работы для заочной формы обучения
- •2.6. Балльно-рейтинговая система оценки знаний
- •3. Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •Опорный конспект Введение
- •Раздел 1. Технология программирования
- •1.1. Основная тенденция технологии программирования
- •Раздел 2. Ввод данных
- •2.1. Организация надежного ввода
- •2.2. Обработка строк
- •2.3. Средства группирования компонентов
- •Раздел 3. Управляющие окна
- •3.1. Управление выбором
- •3.2. Диалоговые окна
- •3.3. Многострочные окна
- •Раздел 4. Развитые компонеты
- •4.1. Работа с данными типа DateTime
- •4.2. Работа с двумерными массивами
- •4.3. Компоненты навигаторов.
- •4.4. Использование указателей
- •Раздел 5. Основные понятия субд
- •5.1. Общие сведения о базах данных (бд)
- •5.2. Концепция управления бд из среды Builder
- •5.3. Файлы и индексы
- •Раздел 6. Программирование баз данных
- •6.1. Невизуальные компоненты для построения бд
- •6.2. Навигация по нд
- •6.3. Доступ к полям нд
- •6.4. Визуальные компоненты для работы с бд
- •Раздел 7. Основные приёмы программирования бд
- •7.1. Сортировка, фильтрация и редактирование нд
- •7.2.Организация надежного ввода данных в бд
- •Раздел 8. Развитые приёмы программирования бд
- •8.1. Построение связей между таблицами бд
- •8.2. Работа с изображениями.
- •Раздел 9. Интерфейс прикладного программирования api
- •9.1 Встраивание звука
- •9.2. Вызов других приложений
- •Заключение
- •3.3. Глоссарий (краткий словарь основных терминов и положений)
- •3.4. Технические средства обеспечения дисциплины
- •3.5. Методические указания к выполнению лабораторных работ
- •3.5.1. Лабораторные работы, семестр 1
- •Работа 1.1. Проектирование программного проекта.
- •Вспомогательный теоретический материал Основная тенденция технологии программирования
- •Компонент ActionList
- •Связь пунктов меню Main Menu1 с действиями ActionList
- •Связь действий ActionList с изображениями ImageList
- •Кнопки быстрого доступа
- •Всплывающие подсказки
- •Использование стандартных действий
- •10 Правил технологии программирования
- •Работа 1.2. Надёжный ввод
- •Работа 1.3. Контейнеры
- •Работа 1.4. Компоненты выбора
- •Работа 1.5. Диалоги
- •Работа 1.6. Многострочные окна
- •Работа 1.7. Определение даты и временного интервала.
- •Работа 1.8. Обработка двумерных массивов.
- •Работа 1.9. Работа с каталогами и файлами.
- •3.5.2. Лабораторные работы, семестр 2
- •Работа 2.1. Начальное создание базы данных
- •Вспомогательный теоретический материал Общие сведения о базах данных
- •Концепция управления бд из среды Builder
- •Средство dbe (Database Borland Engine – машина Borland управления базой данных)
- •Альяс базы данных
- •Поля файла бд
- •Набор данных таблицы бд
- •Управление наборами данных в среде Builder
- •Модуль данных DataModule
- •Файлы и индексы
- •Содержание работы
- •Работа 2.2. Сортировка набора данных, русификация заголовков
- •Работа 2.3. Организация надежного ввода
- •//Проверка полей Panel2 - только для режима замены
- •Работа 2.4. Ввод данных посредством вспомогательных словарей.
- •Работа 2.5. Связи таблиц типа 1:1 и 1:n
- •Работа 2.6. Поля синхронного просмотра типа Lookup
- •Работа 2.7. Поиск и фильтрация
- •Работа 2.8. Особенности сохранения изображений в бд
- •Работа 2.9. Встраивание звука
- •Работа 2.10. Вызов других приложений
- •Методические указания к практическим занятиям
- •Заключение
- •4. Блок контроля освоения дисциплины
- •Часть 1, первый семестр – контрольная работа, зачёт.
- •Часть 1, второй семестр – курсовой проект, экзамен.
- •4.1. Задание на контрольную работу и методические указания к её выполнению
- •Вниманию студентов, обучающихся с элементами дот.
- •Задание на курсовой проект и методические указания к его выполнению
- •Этапы работы над курсовым проектом
- •4.3. Текущий контроль Тренировочные тесты
- •4.4. Итоговый контроль Вопросы к зачёту, семестр 1
- •Вопросы к экзамену, семестр2
Поля файла бд
В Builder-программе каждому файлу БД соответствует компонент, называемый таблицей. В общем, этот компонент является программным аналогом абстрактной таблицы БД, существующей на бумаге.
Когда с помощью DBD создаются поля файла БД, пользователь должен указать их имена и типы в соответствии с заранее спроектированной таблицей БД. Эти поля являются физическими, реально существующими как блок данных файла. Однако Builder значительно расширяет возможности работы, предлагая использовать компонент «таблица базы данных».
Функциональное отличие компонента-таблицы от файла состоит в том, что в таблицу могут быть добавлены поля, не существующие физически, но появляющиеся в интерфейсе во время выполнения программы. Такие поля называют виртуальными или динамическими. К ним относятся вычисляемые поля и поля динамической подстановки или LookUp – поля. Изучению этих полей посвящены соответствующие лабораторные работы.
Набор данных таблицы бд
Во время выполнения программы (на фазе run time) при открытии компонента «таблица БД» с ним связывается определённая область оперативной памяти, называемая «набором данных». В неё автоматически без участия программиста переносятся несколько (возможно, все) записей из файла. Дальнейшая работа с БД проистекает не на физическом диске, а в этом наборе данных. Когда таблицу БД закрывают, записи из набора данных копируются в файл на диск, где они и сохраняются длительное время. Именно в этом наборе данных и формируются виртуальные поля таблицы. Наличие такого «дублёра» реального файла позволяет построить более быстрые программы, хотя в аварийных ситуациях, например при отключении электропитания, информация из набора данных может быть потеряна. Методы борьбы с такими аварийными потерями рассматриваются во время практических работ.
Управление наборами данных в среде Builder
Для обеспечения надёжности программирования в смысле уменьшения вероятности ошибочных действий программиста разработана концепция управления наборами данных(НД) , которую можно выразить таким образом:
чтобы выполнить некоторую операцию над НД, надо установить НД в такое состояние, когда эта операция разрешена.
В данном курсе мы остановимся на таком подмножестве операций над набором данных:
открытие,
перемещение (навигация),
добавление новой записи,
редактирование старой записи,
закрытие.
Для каждой группы операций вводится внутренняя системная константа, обозначающая состояние НД, в котором эта операция разрешена. Устанавливаются также и команды (методы набора данных), позволяющие переводить НД из одного состояния в другое. На рис. 88 изображена таблица состояний НД и разрешенные в этом состоянии команды (полный набор разрешенных методов и состояний НД см. в [1]) .
Константа состояния |
Описание |
Команды управления состоянием НД |
dsInactive |
НД закрыт, данные недоступны |
Open, RenameTable, DeleteTable |
dsBrowse |
НД открыт, данные можно просматривать, но нельзя редактировать |
Next, Prior,First, Last, Insert, Edit, Close |
dsInsert |
НД открыт, можно добавить новую запись |
Next, Prior, First, Last, Post ,Close |
dsEdit |
НД открыт, можно редактировать текущую запись |
Next, Prior, First, Last, Post ,Close |
Рис. 88. Состояния НД
Перед тем, как применить к НД какую-либо команду, надо установить допустимое для этой команды состояние НД. На рис. 89 показаны варианты перевода НД из одного состояния в другое.
Рис. 89. Граф состояний НД
Исходное состояние НД – dsInactive: набор закрыт, файл, связанный с ним, можно переименовать (метод RenameTable), удалить (метод DeleteTable) или открыть (метод Open). Команда Open «открывает» набор данных и переводить его в состояние dsBrowse. При открытии НД система переписывает в оперативную память индексный файлы и упорядочивает их, строит набор данных и устанавливает курсор базы данных на первую запись. В состоянии dsBrowse можно перемещаться по НД, используя команды (методы) :
-
Метод
Действие
Next
Перейти на следующую запись
Prior
Перейти на предыдущую запись
Last
Перейти на последнюю запись файла
First
Перейти на первую запись файла
Когда НД находится в состоянии dsBrowse, эти команды не изменяют его состояния. Команда Insert переводит НД в состояние dsInset, а команда Edit – соответственно в dsEdit. В обоих состояниях – dsInsert и dsEdit – разрешается записывать данные в поля НД, но для dsInsert эти данные записываются в новую пустую запись, а для dsEdit они заносятся в поля текущей записи.
Когда к НД добавлена новая запись или отредактирована старая, её надо записать в НД командой Post. Эта команда всегда переводит НД в состояние dsBriwse, поэтому, если надо вновь отредактировать НД, необходимо снова выполнить команды Edit или Insert для перевода НД в нужное состояние.
Команда Post действует по-разному в зависимости от того, в каком состоянии находился НД. Если состояние было dsInsert, то новая запись будет добавлена к НД и количество записей файла увеличится на 1. Если же состояние было dsEdit, новые данные записываются на место текущей записи и количество записей в файле не изменится.
В обоих состояниях – dsInsert и dsEdit – разрешено выполнить любую команду навигации и перейти на другую запись НД. Но перед переходом на другую запись автоматически (по умолчанию) выполнится команда Post и новые данные будут записаны в НД. Однако рекомендуется команду записи Post всегда выполнять явно – это более надёжно.
Перед окончанием сеанса работы следует в явном виде закрыть таблицу набора данных командой Close. По этой команде уничтожаются все управляющие таблицы, созданные при открытии : индексы и динамическая память, отведённая под НД, а сам НД переводится в состояние dsInactive, в котором все записи файла становятся недоступными. Однако в этой ситуации программиста подстерегает опасность потери нескольких последних записей. Это может произойти, если сеанс Windows завершен некорректно: например, пользователь непосредственно отключил машину от сети. Дело в том, что даже при явном выполнении команд Post и Close данные из НД не записываются на диск, а остаются какое-то время в области оперативной памяти, называемой «кэш виртуальных страниц». Кэш переписывается на диск самой операционной системой, когда происходит его насыщение или при корректном закрытии сеанса Windows. Поэтому при некорректном завершении сеанса данные из кэша безвозвратно теряются. Чтобы избежать этого, надо при работе программ с базами данных настраивать компьютер таким образом, чтобы запретить операционной системе кэшировать по записи.
