Книжная полка

Микросхемы, транзисторы, связь, сети, интернет. Книги, продажа книг


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



Локальная СУБД своими руками. Учимся на примерах+CD

А. В. Енин, Н. В. Енин

Книга - Локальная СУБД своими руками. Учимся на примерах+CD Цена: 450 руб.


ISBN:5-98003-272-X
Формат:70x100/16
Серия: Библиотека профессионала
Объем:464 стр.

Описание книги "Локальная СУБД своими руками. Учимся на примерах+CD"

Издательство: СОЛОН-ПРЕСС

—   У вас есть множество идей и вы чувствуете в себе силы разработать оригиналь­ную программную систему, но не знаете, с чего начать?

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

—   Вас всегда интересовало, как работают различные «волшебники», или «Wi- zard'ы», автоматически создающие заготовки приложений и частей приложения, но думаете, что создать свой вам не по силам?

—   Вы устали от чтения книг со множеством небольших учебных примеров испо­льзования классов MFC и хотели бы видеть на практике, как все возможности MFC объединить в настоящий проект?

—   Вы прочли ряд книг по проектированию баз данных, но всегда хотели знать, каково их внутреннее устройство?

Эта книга — для вас.

Авторы попытались осветить все вышеназванные вопросы на примере создания локальной системы управления базами данных.

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

Затем, на основе созданного вами кода, будет создана библиотека классов, позво­ляющая использовать СУБД в объектно-ориентированном виде. И, наконец, будет создана небольшая визуальная среда по работе с СУБД и автоматический генератор С++ классов (Wizard).

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

Содержание

Введение        3

Требования к знаниям          5

1.         Пример программы-пятиминутки              6

1.1.      Введение        6

1.2.      Создаем базу данных            6

1.3.      Создание проекта      8

1.4.      Первичный анализ и добавление классов             11

1.5.      Функция OnRecordFirst()     15

1.6.      Функция OnRecordLast()      17

1.7.      Функция OnRecordNext()     19

1.8.      Функция OnRecordPrev()     21

1.9.      Заключение    23

2.         Первая попытка создать базу         данных            24

2.1.      Общие задачи            24

2.2.      Управляющие структуры данных    24

2.3.      Как правильно разработать структуры данных     25

2.4.      Первые этапы проекта          25

2.5.      Поля, таблицы и база данных          26

2.6.      Наша тестовая программа    28

2.6.1.   Заголовочный файл  28

2.6.2.   Создаем базу данных            29

2.6.3.   Инициализируем переменную типа «база данных»         30

2.6.4.   Создаем таблицу       32

2.6.5.   Открываем базу данных       33

2.6.6.   Закрываем базу данных        33

2.6.7.   Создаем поле             34

2.7.      Подведем итоги         35

3.         Создание базы данных, таблицы и поля    36

3.1.      Общие задачи            36

3.2.      Структуры, файлы и определения  38

3.2.1.   Некоторые определения, которые мы будем

применять в нашем проекте            38

3.2.2.   Файл данных             41

3.2.3.   Описание управляющей структуры дискового блока     42

3.2.4.   Некоторые функции стандартной библиотеки C/C++    43

3.2.5.   Создание и форматирование файла данных        44

3.3.      Управляющие структуры базы данных     46

3.3.1.   Главная управляющая структура базы данных,

или Блок управления базой (БУБ)             46

3.3.2.   Блок управления полем (БУП)       46

3.3.3.   Блок управления       таблицей (БУТ)        47

3.3.4.   Главная управляющая структура базы данных,

или Блок управления базой (БУБ) подробнее      48

3.3.5.   Связь между управляющими структурами           49

3.4.      Создание файлов базы данных, таблиц и полей  50

3.4.1.   Общие задачи                       50

3.4.2.   Создание главного (заголовочного) файла БД      50

3.4.3.   Строение заголовочного файла       52

3.4.4.   Открываем заголовочный файл      52

3.4.5.   Закрываем заголовочный файл       55

3.4.6.   Сохраняем заголовочный файл       56

3.4.7.   Создаем таблицу       57

3.4.8.   Удаляем таблицу       60

3.4.9.   Добавляем (создаем) поле  61

3.4.10. Вставляем поле         66

3.4.11. Удаляем поле             70

3.4.12. Редактируем (изменяем) поле         73

3.4.13. Вспомогательные функции             76

4.         Создание тестирующей       программы     78

4.1.      Введение        78

4.2.      Создаем проект         78

4.2.1.   Стандартные действия по созданию проекта       78

4.2.2.   Первые изменения проекта             82

4.3.      Краткое описание структуры проекта       84

4.3.1.   Общие положения     84

4.3.2.   Файл описания ресурсов программы         90

4.3.3.   Создаем диалоговые окна в ресурсах         93

4.4.      Краткое описание механизма работы диалогового окна            99

4.4.1.   Класс главного диалогового окна  99

4.4.2.   Главный класс приложения            104

4.4.3.   Немного информации о классе CwinApp              106

4.5.      Создаем заготовки классов новых диалогов         109

4.6.      Изменения в классах приложения и главного диалогового окна           112

4.7.      Краткое описание некоторых элементов управления      127

4.7.1.   Комбинированный список  127

4.7.2.   Список            128

4.8.      Класс CConstructor    130

4.9.      Класс CViewRecord  141

4.10.    Набор стандартных действий для запуска программы    146

4.11.    Подведем итоги        150

5.         Основы построения языков программирования  152

5.1.      Простой анализатор арифметических выражений           152

5.1.1.   Введение        152

5.1.2.   Лексический анализ             153

5.1.3.   Приоритет выражений         154

5.1.4.   Анализ выражений: проблема        154

5.1.5.   Разбиение выражения на лексемы             155

5.1.6.   Функция, разбивающая выражение на лексемы  157

5.1.7.   Простой анализатор выражений     159

5.1.8.   Код анализатора        159

5.1.9.   Прогон программы  163

5.1.10. Схема работы             164

5.1.11. Заключение    166

5.2.      Анализатор, воспринимающий переменные        166

5.2.1.   Введение        166

5.2.2.   Код анализатора        167

5.2.3.   Тестирование анализатора  173

5.2.4.   Схема работы             173

5.2.5.   Заключение    177

6.         Создаем анализатор SQL-запросов           178

6.1.      Что должен поддерживать анализатор SQL-выражений             178

6.1.1.   Введение        178

6.1.2.   Команды, поддерживаемые анализатором            179

6.1.3.   Операции, поддерживаемые анализатором          179

6.1.4.   Типы лексем              180

6.1.5.   Заключение    180

6.2.      Анализатор для SQL-запросов        180

6.2.1.   Введение        180

6.2.2.   Управляющие структуры и функции анализатора           180

6.2.3.   Работа со стеком       184

6.2.4.   Работа с символами, лексемами и выражениями            189

6.3.      Разбиваем SQL-запрос и работаем с его частями            196

6.3.1.   Разбиваем SQL-запрос         196

6.3.2.   Анализируем конструкцию FROM             199

6.3.3.   Анализируем конструкцию SELECT          200

6.3.4.   Анализируем конструкцию ORDER BY    202

6.3.5.   Функции запуска анализатора        203

6.3.6.   Внутренний механизм анализатора           205

6.4.      Рекурсивный цикл функций            214

6.4.1.   Проблемы, возникающие при поддержке

нескольких типов данных    214

6.4.2.   Рекурсивный спуск функций           215

6.4.3.   Шестой уровень рекурсивного спуска       215

6.4.4.   Пятый уровень рекурсивного спуска          217

6.4.5.   Четвертый уровень рекурсивного спуска  218

6.4.6.   Третий уровень рекурсивного спуска        221

6.4.7.   Второй уровень рекурсивного спуска        224

6.4.8.   Первый уровень рекурсивного спуска        230

6.5.      Подведем итоги         232

7.         Работа с записями и навигация по таблице          234

7.1.      Подробнее о некоторых проблемах            234

7.2.      Запись, ее префикс, расширенный размер            238

7.3.      Читаем и записываем на диск блок данных          239

7.4.      Выделяем таблице новый блок данных и размечаем его            240

7.5.      Находим первый свободный блок в файле данных          243

7.6.      Занимаем свободный блок в файле данных          245

7.7.      Освобождаем занятый блок в файле данных        246

7.8.      Присвоить значение полю записи              246

7.9.      Извлечь значение из поля записи  248

7.10.    Присвоить записи номер     249

7.11.    Получить номер записи       249

7.12.    Структуры управления записями  250

7.13.    Чтение и запись всех блоков           251

7.14.    Создание блоков данных в памяти             254

7.15.    Удаление блоков данных из памяти           255

7.16.    Создание SQL-запроса        256

7.17.    Функции положения индикатора активной записи         257

7.17.1. Функция проверки на выход за конец виртуальной        таблицы          257

7.17.2. Функция проверки на выход за начало     виртуальной  таблицы .... 258

7.17.3. Функция добавления значений полей в массив хранения

текущей записи         258

7.17.4. Функции перемещения индикатора активной записи

в начало, в конец, на следующую и предыдущую позиции         260

7.18.    Создание, удаление и изменение записи  261

7.18.1. Добавление новой записи  261

7.18.2. Удаление записи      264

7.18.3. Изменение значения полей записи            266

7.19.    Поиск номера свободной записи в блоках таблицы        267

7.20.    Занимаем свободную запись           268

7.21.    Освобождение занятой записи        268

7.22.    Извлечение идентификатора записи          269

7.23.    Открытие таблицы заново  271

7.24.    Заключение    272

8.         Тест для работы с записями            273

8.1.      Введение        273

8.2.      Изменяем ресурсы    273

8.3.      Изменяем заголовочный файл       класса             274

8.4.      Изменяем файл реализации           класса             276

8.4.1.   Общие изменения     276

8.4.2.   Функции обмена информацией между БД и приложением       278

8.4.3.   Обновляем содержимое      списка             280

8.4.4.   Функции по работе с записями в базе данных     282

8.4.5.   Функции навигации по набору записей  285

8.5.      Подведем итоги         287

9.         Разработка визуальной среды по работе с базой данных            289

9.1.      Введение        289

9.2.      Общие задачи            289

9.3.      Создаем проект         292

9.4.      Описание новых классов      294

9.4.1.   Класс CMyEdit           294

9.4.2.   Класс CMyListCtrl     295

9.5.      Работаем с проектом            299

9.5.1.   Заголовочный файл класса «Вид» нашего проекта          299

9.5.2.   Файл реализации класса «Вид» нашего проекта              301

9.5.3.   Класс диалогового окна      нашего проекта          307

9.5.4.   Класс диалогового окна с закладками CTabCtrl  308

9.6.      Заключение    313

10.       Создание библиотеки классов        314

10.1.    Общие задачи            314

10.2.    Направление работы             315

10.3.    Проект со статической переменной           316

10.4.    Программный интерфейс обмена данными, использующийся

в Access          320

10.5.    Создание проекта для библиотеки классов           322

10.6.    Что такое виртуальная функция     324

10.7.    Общий вид иерархии классов          325

10.8.    Классы, составляющие иерархию классов            326

10.9.    Класс CBeehiveDataBase      330

10.10.  Класс  CBeehiveBasis            331

10.11.  Класс  CBeehiveAnalizer       332

10.12.  Классы CBeehiveManager и CBeehiveSQL              333

10.13.  Класс  CBeehiveTable            334

10.14.  Класс  CBeehiveRecordset     339

10.15.  Заключение    346

11.       Тест для библиотеки классов          347

11.1.    Описание проблемы             347

11.2.    Изменяем проект с тестирующей программой     347

11.3.    Создание класса, производного от CBeehiveRecordset    356

11.4.    Работаем с записями таблицы        358

11.5.    Подведем итоги         365

12.       Отладка программы              366

12.1.    Вводная часть            366

12.2.    Начинаем отладку     367

12.3.    Продолжаем отладку                       388

12.4.    Завершаем отладку    398

13.       ClassWizard или волшебник классов          399

13.1.    Введение        399

13.2.    Зачем нам нужен «волшебник»?     399

13.3.    Цель и выполняемые           действия         399

13.4.    Внешний облик        400

13.5.    Создание проекта     400

13.6.    Создание диалога «волшебника»   401

13.7.    Механизм работы     405

13.8.    Функция для создания .Ь-файла    410

13.9.    Функция для создания .cpp-файла             415

13.10.  Подведем итоги        422

14.       Некоторые способы использования генератора классов            423

14.1.    Введение        423

14.2.    Встраиваем генератор в меню Visual Studio         423

14.3.    Создаем новый тип проекта Visual Studio            427

14.3.1. Создаем заготовку проекта             427

14.3.3. Класс CDialogChooser          430

14.3.4. Изменяем ресурсы диалогового окна        432

14.3.5. Класс CCustom1Dlg 434

14.4.    Подведем итоги         437

15.       Проект-пятиминутка с использованием нашей СУБД   438

15.1.    Цель проекта            438

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

15.3.    Создание проекта     442

15.4.    Создание классов для работы с базой данных     444

15.5.    Пример заголовочного файла         446

15.6.    Пример файла реализации 446

15.7.    Реализация проекта              448

15.8.    Подведем итоги         450

Заключение   451

1.         Заглянем немного вперед   451

2.         Подведем итоги         455



RadioRadar.net - datasheet, service manuals, схемы, электроника, компоненты, semiconductor, САПР, CAD, electronics