Оглавление
Введение
Требования к знаниям
1. Пример программы-пятиминутки
1.1. Введение
1.2. Создаем базу данных
1.3. Создание проекта
1.4. Первичный анализ и добавление классов
1.5. Функция OnRecordFirst()
1.6. Функция OnRecordLast()
1.7. Функция OnRecordNext()
1.8. Функция OnRecordPrev()
1.9. Заключение
2. Первая попытка создать базу данных
2.1. Общие задачи
2.2. Управляющие структуры данных
2.3. Как правильно разработать структуры данных
2.4. Первые этапы проекта
2.5. Поля, таблицы и база данных
2.6. Наша тестовая программа
2.6.1. Заголовочный файл
2.6.2. Создаем базу данных
2.6.3. Инициализируем переменную типа «база данных»
2.6.4. Создаем таблицу
2.6.5. Открываем базу данных
2.6.6. Закрываем базу данных
2.6.7. Создаем поле
2.7. Подведем итоги
3. Создание базы данных, таблицы и поля
3.1. Общие задачи
3.2. Структуры, файлы и определения
3.2.1. Некоторые определения, которые мы будем
применять в нашем проекте
3.2.2. Файл данных
3.2.3. Описание управляющей структуры дискового блока
3.2.4. Некоторые функции стандартной библиотеки С/С++
3.2.5. Создание и форматирование файла данных
3.3. Управляющие структуры базы данных
3.3.1. Главная управляющая структура базы данных,
или Блок управления базой (БУБ)
3.3.2. Блок управления полем (БУП)
3.3.3. Блок управления таблицей (БУТ)
3.3.4. Главная управляющая структура базы данных,
или Блок управления базой (БУБ) подробнее
3.3.5. Связь между управляющими структурами
3.4. Создание файлов базы данных, таблиц и полей
3.4.1. Общие задачи
3.4.2. Создание главного (заголовочного) файла БД
3.4.3. Строение заголовочного файла
3.4.4. Открываем заголовочный файл
3.4.5. Закрываем заголовочный файл
3.4.6. Сохраняем заголовочный файл
3.4.7. Создаем таблицу
3.4.8. Удаляем таблицу
3.4.9. Добавляем (создаем) поле
3.4.10. Вставляем поле
3.4.11. Удаляем поле
3.4.12. Редактируем (изменяем) поле
3.4.13. Вспомогательные функции
4. Создание тестирующей программы
4.1. Введение
4.2. Создаем проект
4.2.1. Стандартные действия по созданию проекта
4.2.2. Первые изменения проекта
4.3. Краткое описание структуры проекта
4.3.1. Общие положения
4.3.2. Файл описания ресурсов программы
4.3.3. Создаем диалоговые окна в ресурсах
4.4. Краткое описание механизма работы диалогового окна
4.4.1. Класс главного диалогового окна
4.4.2. Главный класс приложения
4.4.3. Немного информации о классе CwinApp
4.5. Создаем заготовки классов новых диалогов
4.6. Изменения в классах приложения и главного диалогового окна
4.7. Краткое описание некоторых элементов управления
4.7.1. Комбинированный список
4.7.2. Список
4.8. Класс CСonstructor
4.9. Класс CViewRecord
4.10. Набор стандартных действий для запуска программы
4.11. Подведем итоги
5. Основы построения языков программирования
5.1. Простой анализатор арифметических выражений
5.1.1. Введение
5.1.2. Лексический анализ
5.1.3. Приоритет выражений
5.1.4. Анализ выражений: проблема
5.1.5. Разбиение выражения на лексемы
5.1.6. Функция, разбивающая выражение на лексемы
5.1.7. Простой анализатор выражений
5.1.8. Код анализатора
5.1.9. Прогон программы
5.1.10. Схема работы
5.1.11. Заключение
5.2. Анализатор, воспринимающий переменные
5.2.1. Введение
5.2.2. Код анализатора
5.2.3. Тестирование анализатора
5.2.4. Схема работы
5.2.5. Заключение
6.Создаем анализатор SQL-запросов
6.1. Что должен поддерживать анализатор SQL-выражений
6.1.1. Введение
6.1.2. Команды, поддерживаемые анализатором
6.1.3. Операции, поддерживаемые анализатором
6.1.4. Типы лексем
6.1.5. Заключение
6.2. Анализатор для SQL-запросов
6.2.1. Введение
6.2.2. Управляющие структуры и функции анализатора
6.2.3. Работа со стеком
6.2.4. Работа с символами, лексемами и выражениями
6.3. Разбиваем SQL-запрос и работаем с его частями
6.3.1. Разбиваем SQL-запрос
6.3.2. Анализируем конструкцию FROM
6.3.3. Анализируем конструкцию SELECT
6.3.4. Анализируем конструкцию ORDER BY
6.3.5. Функции запуска анализатора
6.3.6. Внутренний механизм анализатора
6.4. Рекурсивный цикл функций
6.4.1. Проблемы, возникающие при поддержке
нескольких типов данных
6.4.2. Рекурсивный спуск функций
6.4.3. Шестой уровень рекурсивного спуска
6.4.4. Пятый уровень рекурсивного спуска
6.4.5. Четвертый уровень рекурсивного спуска
6.4.6. Третий уровень рекурсивного спуска
6.4.7. Второй уровень рекурсивного спуска
6.4.8. Первый уровень рекурсивного спуска
6.5. Подведем итоги
7. Работа с записями и навигация по таблице
7.1. Подробнее о некоторых проблемах
7.2. Запись, ее префикс, расширенный размер
7.3. Читаем и записываем на диск блок данных
7.4. Выделяем таблице новый блок данных и размечаем его
7.5. Находим первый свободный блок в файле данных
7.6. Занимаем свободный блок в файле данных
7.7. Освобождаем занятый блок в файле данных
7.8. Присвоить значение полю записи
7.9. Извлечь значение из поля записи
7.10. Присвоить записи номер
7.11. Получить номер записи
7.12. Структуры управления записями
7.13. Чтение и запись всех блоков
7.14. Создание блоков данных в памяти
7.15. Удаление блоков данных из памяти
7.16. Создание SQL-запроса
7.17. Функции положения индикатора активной записи
7.17.1. Функция проверки на выход за конец виртуальной таблицы
7.17.2. Функция проверки на выход за начало виртуальной таблицы
7.17.3. Функция добавления значений полей в массив хранения
текущей записи
7.17.4. Функции перемещения индикатора активной записи
в начало, в конец, на следующую и предыдущую позиции
7.18. Создание, удаление и изменение записи
7.18.1. Добавление новой записи
7.18.2. Удаление записи
7.18.3. Изменение значения полей записи
7.19. Поиск номера свободной записи в блоках таблицы
7.20. Занимаем свободную запись
7.21. Освобождение занятой записи
7.22. Извлечение идентификатора записи
7.23. Открытие таблицы заново
7.24. Заключение
8. Тест для работы с записями
8.1. Введение
8.2. Изменяем ресурсы
8.3. Изменяем заголовочный файл класса
8.4. Изменяем файл реализации класса
8.4.1. Общие изменения
8.4.2. Функции обмена информацией между БД и приложением
8.4.3. Обновляем содержимое списка
8.4.4. Функции по работе с записями в базе данных
8.4.5. Функции навигации по набору записей
8.5. Подведем итоги
9. Разработка визуальной среды по работе с базой данных
9.1. Введение
9.2. Общие задачи
9.3. Создаем проект
9.4. Описание новых классов
9.4.1. Класс CMyEdit
9.4.2. Класс CMyListCtrl
9.5. Работаем с проектом
9.5.1. Заголовочный файл класса «Вид» нашего проекта
9.5.2. Файл реализации класса «Вид» нашего проекта
9.5.3. Класс диалогового окна нашего проекта
9.5.4. Класс диалогового окна с закладками CTabCtrl
9.6. Заключение
10. Создание библиотеки классов
10.1. Общие задачи
10.2. Направление работы
10.3. Проект со статической переменной
10.4. Программный интерфейс обмена данными, использующийся
в Access
10.5. Создание проекта для библиотеки классов
10.6. Что такое виртуальная функция
10.7. Общий вид иерархии классов
10.8. Классы, составляющие иерархию классов
10.9. Класс CBeehiveDataBase
10.10. Класс CBeehiveBasis
10.11. Класс CBeehiveAnalizer
10.12. Классы CBeehiveManager и CBeehiveSQL
10.13. Класс CBeehiveTable
10.14. Класс CBeehiveRecordset
10.15. Заключение
11. Тест для библиотеки классов
11.1. Описание проблемы
11.2. Изменяем проект с тестирующей программой
11.3. Создание класса, производного от CBeehiveRecordset
11.4. Работаем с записями таблицы
11.5. Подведем итоги
12. Отладка программы
12.1. Вводная часть
12.2. Начинаем отладку
12.3. Продолжаем отладку
12.4. Завершаем отладку
13. ClassWizard или волшебник классов
13.1. Введение
13.2. Зачем нам нужен «волшебник»?
13.3. Цель и выполняемые действия
13.4. Внешний облик
13.5. Создание проекта
13.6. Создание диалога «волшебника»
13.7. Механизм работы
13.8. Функция для создания .h-файла
13.9. Функция для создания .cpp-файла
13.10. Подведем итоги
14. Некоторые способы использования генератора классов
14.1. Введение
14.2. Встраиваем генератор в меню Visual Studio
14.3. Создаем новый тип проекта Visual Studio
14.3.1. Создаем заготовку проекта
14.3.3. Класс CDialogChooser
14.3.4. Изменяем ресурсы диалогового окна
14.3.5. Класс CCustom1Dlg
14.4. Подведем итоги
15. Проект-пятиминутка с использованием нашей СУБД
15.1. Цель проекта
15.2. Создание базы данных
15.3. Создание проекта
15.4. Создание классов для работы с базой данных
15.5. Пример заголовочного файла
15.6. Пример файла реализации
15.7. Реализация проекта
15.8. Подведем итоги
Заключение
1. Заглянем немного вперед
2. Подведем итоги