Поиск по сайту:


Смотри также:

C++Builder 5. Руководство разработчика. Том 1 - Основы - Книга.

C++Builder 5. Руководство разработчика. Том 2 - Более сложные методы работы в C++Builder 5 - Книга.

ДИСКРЕТНАЯ МАТЕМАТИКА. БУЛЕВЫ ФУНКЦИИ И ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ МЕТОДИЧЕСКИЕ УКАЗАНИЯ И КОНТРОЛЬНЫЕ ЗАДАНИЯ - Книга.

Электронный учебник по VBA (Excel). Оглавление - Книга.

Все новинки...

Книга «C++Builder 5. Руководство разработчика. Том 1 - Основы»

Поделиться:
C++Builder 5 Руководство разработчика Книга: C++Builder 5. Руководство разработчика. Том1 Основы.
Авторы:
Джарод Холингвэрт,
Дэн Баттерфилд,
Боб Сворт,
Джэйми Оллсоп
Страниц: 865
Размер архива: 7 939 306 байт (8 Мб)
 
Содержание
Введение
На кого рассчитана эта книга
Системные требования для работы с C++Builder
Структура книги
Используемые обозначения
ЧАСТЬ I. ОСНОВЫ C++ BUILDER 5
Глава 1. Введение в C++Builder
Основы C++Builder
     Начало начал: Hello, World!
     Библиотека VCL, формы и компоненты
     Форма
     Панель быстрого доступа к командам меню
     Настройка панелей инструментов
     Панель Component Palette
     События и обработчики событий
     Запустим и посмотрим!
     Ваша первая рабочая программа
     Что делать
Что нового в C++Builder 5
     Web-программирование
     Приложения для распределенных вычислений
     Коллективное создание приложений
     Локализация приложений
     Отладка
     Разработка приложений для работы с базами данных
     Повышение производительности работы разработчиков
     Сопроводительный компакт-диск с инструментами сторонних разработчиков
     Модернизация и совместимость
     Модернизация предыдущей версии C++Builder
     Использование существующих проектов в C++Builder 5
     Создание проектов, совместимых с предыдущими версиями C++Builder
     Другие вопросы модернизации проекта
Преобразование кода Delphi в код C++Builder
     Комментарии
     Переменные
     Константы
     Операторы
     Операторы присвоения
     Операторы инкремента и декремента
     Условные операторы
     Оператор (*)
     Операторы new и delete
     Операторы для работы с классами
     Управление потоком выполнения программы
     Функции и процедуры
     Классы
     Конструкторы и деструкторы
     Доступ к членам-данным и членам-функциям
     Указатель this
     Директивы препроцессора
     Директива #defme
     Директива #include
     Типы файлов
Преимущества и недостатки C++Builder версии 5
     Визуальная реальность: Rapid Application Development - действительно быстрое создание приложений
     Поддержка стандарта языка C++
     Выбор среды разработки
     Преимущества и недостатки C++Builder
Подготовка к работе с Kylix
     Сходства между Kylix и C++Builder
     Различия между Kylix и C++Builder
     Перенос проектов C++Builder в Kylix
     Так когда же он будет выпущен?
Резюме
Глава 2. Проекты C++Builder и дополнительные сведения об IDE-среде
Проекты C++Builder
     Файлы, входящие в состав проекта C++Builder
     Основные файлы проекта
     Файлы формы
     Файлы пакета
     Файлы параметров рабочего стола
     Резервные файлы
     Менеджер проектов Project Manager
Репозитарий объектов
     Включение компонентов в репозитарий объектов
     Элементы репозитария объектов
     Совместное использование в проекте элементов репозитария объектов
     Настройка параметров репозитария объектов
     Создание программы-мастера и включение ее в репозитарий объектов
Пакеты
     Особенности применения пакетов
     Пакеты для выполнения
     Утилита tdump
Новые компоненты IDE-среды в C++Builder 5
     Категории свойств окна Object Inspector
     Категории свойств
     Установленные категории свойств
     Изображения в списках прокрутки окна Object Inspector
     Файл проекта в формате XML
     Сохранение форм в текстовом формате
     Параметры на уровне узлов
     Установка глобальных и узловых параметров
     Обращение значений узловых параметров
     Способы применения узловых параметров
     Новый список неотложных задач
     Просмотр элементов списка неотложных задач
     Глобальные элементы списка неотложных задач
     Локальные элементы списка неотложных задач
     Программа-мастер Console Wizard для создания консольных приложений
     Запуск программы-мастера Console Wizard
     Пример создания простого консольного приложения
Резюме
Глава 3. Стили и методы программирования в среде C++Builder
Стили кодирования для улучшения читабельности кода
     Краткий и простой код
     Выделение фрагментов программы
     Имена со смысловой нагрузкой
     Выбор имен переменных с указанием их назначения
     Модификация имен переменных для указания типа
     Модификация имен переменных для обозначения характеристик или ограничений
     Выбор имен типов
     Выбор имен функций
     Соглашения об именах
     Конструкции кода
     Комментарии
     Комментарии для документирования кода
     Комментарии для игнорирования кода
     Комментарии для улучшения внешнего вида кода
     Заключительные замечания по поводу улучшения читабельности кода
Усовершенствованные приемы программирования в C++Builder
     Применение класса String вместо типа char*
     Ссылки и их эффективное использование
     Избегайте применения глобальных переменных
     Использование в C++Builder глобальных переменных
     Эффективное применение ключевого слова const
     Принципы обработки исключительных ситуаций
     Ключевое слово try
     Ключевое слово catch
     Ключевое слово finally
     Ключевое слово throw
     Необработанные и неожиданные исключительные ситуации
     Использование исключительных ситуаций
     Заключительные замечания по поводу исключительных ситуаций
     Применение операторов new и delete для управления памятью
     Стили приведения типов в C++
     Когда нужно использовать директивы препроцессора
     Стандартная библиотека C++
Список рекомендуемой литературы
Резюме
Глава 4. Более сложные методы программирования в C++Builder
Введение в стандартную библиотеку C++ и библиотеку шаблонов
     Шаблоны языка C++
     Компоненты стандартной библиотеки Standard C++ Library
     Контейнеры
     Итераторы
     Адаптеры
     Алгоритмы
     Класс string
     Класс valarray
     Класс bitset
     Потоки ввода/вывода
     Принципы работы контейнеров и итераторов
     Контейнеры list, vector и deque
     Контейнеры set и map
     Стандартные алгоритмы
     Заключительные замечания по поводу библиотеки SCL
Интеллектуальные указатели и строгие контейнеры
     Куча и стек
     Указатели
     Строгие указатели
     Интеллектуальные указатели
     Строгий контейнер
     Возможные ловушки
     Заключительные замечания об интеллектуальных указателях и строгих контейнерах
Усовершенствованные обработчики исключительных ситуаций
     Обзор стратегии
     Обзор преимуществ
     Замена предлагаемого компилятором обработчика
     Основные принципы
     Дочерние формы многодокументного интерфейса
     Формы однодокументного интерфейса или модальные формы
     Другие классы
     Добавление в класс специфической для проекта информации
     Код обработчика событий
     Заключительные замечания об обработке исключительных ситуаций
Создание многопотоковых приложений
     Многозадачность
     Многопотоковость
     Создание потока с помощью вызовов API-функций
     Объект TThread
     Основной поток библиотеки VCL
     Указание приоритета
     Контроль времени работы потоков
     Синхронизация потоков
     Критические разделы
     Мьютексы
     Другие вопросы
Шаблоны
     Рекуррентная природа шаблонов
     Рекуррентные шаблоны для создания программного обеспечения
     Шаблоны в качестве словаря
     Формат шаблона
     Классификация шаблонов
     Созидающие шаблоны
     Структурные шаблоны
     Поведенческие шаблоны
     Заключительные замечания о шаблонах
Резюме
Глава 5. Принципы и методы создания интерфейса пользователя
Принципы создания интерфейса пользователя
Проекты, используемые в этой главе
     Проект MiniCalculator
Повышение практичности благодаря обратной связи с пользователем
     Индикаторы выполнения TProgressBar и TCGauge
     Указатель мыши
     Пользовательские указатели мыши
     Строка состояния TStatusBar
     Подсказки
     Ручное управление подсказками
     Настраиваемые подсказки
     Событие OnHint объекта TApplication
Повышение практичности за счет улучшенного управления фокусом ввода
     Отклик на ввод
     Перемещение фокуса ввода
Повышение практичности за счет улучшения внешнего вида
     Кнопки только с символами
     Свойство Grouplndex класса TSpeedButton
     Подавление мерцания
     Изображения, дополняющие текст
     Цвет как визуальная подсказка
     Форма элементов управления
Повышение практичности благодаря возможности настройки пользовательского интерфейса
     Закрепление элементов управления
     Изменение размеров
     Свойство Align
     Свойство Anchors
     Ограничения Constraints
     Событие OnConstrainedResize
     Событие OnResize
     Панель кнопок TControlBar
     Выравнивание элементов управления панели TControlBar
     Управление видимостью
     Настройка клиентской части родительской формы в MDI-интерфейсе
Повышение практичности благодаря запоминанию предпочтений пользователя
     Решение проблемы использования разных типов экрана
     Решение проблемы использования экранов с разным разрешением
     Решение проблемы использования разных шрифтов
     Решение проблемы использования разного количества цветов
Решение проблемы усложнения кода при создании интерфейса пользователя
     Список действий
     Совместное использование обработчиков событий
Резюме
Глава 6. Компиляция и оптимизация приложения
Принципы работы компилятора
Сокращение времени компиляции
     Предварительно откомпилированные заголовочные файлы
     Другие методы ускорения компиляции
Компилятор и компоновщик в C++Builder 5
     Фоновая компиляция
     Дополнительные усовершенствования компилятора
     Усовершенствования компоновщика
Введение в принципы оптимизации
Оптимизация по скорости
Кроссворд-головоломка Crozzle Solver
     Экспоненциальный рост времени вычислений
     Параметры проекта для оптимизации по скорости
     Обнаружение уязвимых мест производительности приложения
     Профайлер
     Пример создания профиля
     Ручной хронометраж кода
     Исследование структуры
     Исследование кода
     Оптимизация структуры и алгоритмов
     Изменение структуры
     Выбор алгоритмов
     Улучшение алгоритмов
     Методы настройки кода
     Современные процессоры
     Настройка кода
     Встроенные функции
     Исключение временных объектов и переменных
     Инвариантные вычисления
     Индексирование массивов и вычисления указателей
     Обработка чисел с плавающей запятой
     Другие методы настройки кода
     Методы настройки данных
     Ручное ассемблирование кода
     Внешняя оптимизация
     Заключительные замечания по поводу оптимизации по скорости
Другие аспекты оптимизации приложения
     Оптимизация программы по размеру
     Заключительные замечания
Резюме
Глава 7. Отладка приложения
Обзор принципов отладки
     Рекомендации в отношении проекта в целом
     Рекомендации, касающиеся программирования
     Цель отладки
Основные методы отладки
     Просмотр результатов отладки
     Применение утверждений
     Создание глобального обработчика исключительных ситуаций
     Другие вопросы базовой отладки
Интерактивный отладчик C++Builder
     Сложные контрольные точки
     Новые возможности работы с контрольными точками в C++Builder 5
     Окна просмотра отладочной информации в C++Builder
     Окно CPU
     Окно Call Stack
     Окно Threads
     Окно Modules
     Окно FPU
     Просмотр выражений, их оценка и изменение
     Инспектор отладки Debug Inspector
Инструмент CodeGuard
     Применение и конфигурирование инструмента CodeGuard
     Применение инструмента CodeGuard
     Анализ ошибок и причин их возникновения с помощью CodeGuard
     Доступ к уже освобожденной области памяти
     Вызов метода объекта, область памяти которого уже освобождена
     Ссылка на освобожденный ресурс
     Вызов метода объекта с неправильным приведением типа
     Несоответствие типа ресурса
     Доступ вне верхней границы
     Доступ вне нижней границы
     Доступ к неинициализированному стеку
     Доступ за пределами стека
     Неверный параметр
     Сбой функции
     Утечка ресурсов
Более сложные методы отладки
     Обнаружение источника нарушения доступа
     Присоединение к выполняемому процессу
     Оперативная отладка
     Удаленная отладка
     Конфигурирование удаленной отладки
     Применение удаленной отладки
     Отладка DLL-модулей
     Другие инструменты отладки
Тестирование
     Этапы и методы тестирования
     Советы, касающиеся тестирования
Резюме
Глава 8. Компоненты библиотеки VCL
Обзор библиотеки VCL
     Все начинается с класса TObject
     Программирование на основе существующих объектов
     Применение библиотеки VCL
     Расширения языка C++
     Расширение automated
     Расширение classid(class)
     Расширение closure
     Расширение declspec
     Ключевое слово fastcall
     Ключевое слово property
     Ключевое слово published
Механизм управления потоками
     Соблюдение требований при работе с потоками
     Передача в поток неопубликованных свойств
Обновления универсальных элементов управления
     Библиотека универсальных элементов управления
     Модернизация универсальных элементов управления C++Builder
     Обновления класса TListView
     Обновления класса THeaderControl
     Настройка панели инструментов с помощью класса TToolBar
     Итоговые замечания по поводу обновлений универсальных компонентов управления C++Builder 5
Другие обновления библиотеки VCL
     Новые свойства подсказок и команд меню
     Доступ к реестру
     Усовершенствования документации библиотеки VCL
     Новый компонент TApplicationEvents
     Улучшения класса TIcon
     Другие усовершенствования библиотеки VCL
Расширения библиотеки VCL - не только объект TStringList
     Применение класса TStringList в качестве контейнера
     Сохранение других объектов
     Связывание строк с объектами одинакового типа
     Метод GetSessionsQ
     Метод GetAliasesQ
     Метод GetTablesQ
     Метод GetFieldsQ
     Создание цепочки событий
     Сортировка списков
     Некоторые усовершенствования
Усовершенствованные пользовательские события рисования
     Компонент TTreeView
     Компонент TListView
     Компонент ТТооBar
     Пример использования пользовательских событий рисования
Программа-мастер создания компонентов панели управления Control Panel Applet Wizard
     Основные принципы работы с компонентами панели управления
     Свойства модуля TAppletModule
     События модуля TAppletModule
     GUI-интерфейс компонента панели управления
     Заключительные замечания относительно компонентов панели управления
Применение компонентов сторонних разработчиков
     Преимущества и недостатки компонентов сторонних разработчиков
     Преимущества использования компонентов сторонних разработчиков
     Недостатки компонентов сторонних разработчиков
     Дополнительные ресурсы C++Builder
Резюме
Глава 9. Создание пользовательских компонентов
Для чего нужны пользовательские компоненты
Общие принципы создания компонентов
     Почему в качестве заготовок стоит использовать соответствующие компоненты
     Создание пользовательских компонентов
     Диаграмма классов библиотеки VCL
Создание невизуальных компонентов
     Свойства
     Неопубликованные свойства
     Типы свойств
     Опубликованные свойства
     Свойство-массив
     Другие способы работы со свойствами
     Порядок создания
     События
     Обработка события с дополнительными параметрами
     Методы
     Открытые методы
     Защищенные методы
     Обработка исключительных ситуаций в коде компонента
     Ключевое слово namespace
     Отклик на сообщения
     Работа компонента при создании и выполнении приложения
     Связывание компонентов
     Связь событий из разных компонентов
Создание визуальных компонентов
     С чего начать
     Объект TCanvas
     Использование в компонентах графических элементов
     Обработка сообщений мыши
     Комбинированный подход
     Изменение оконных компонентов
     Создание пользовательских компонентов, связанных с данными
Создание элемента только для чтения данных
     Установление связи с источником данных
     Объявление связи с источником данных
     Объявление доступа для чтения и записи
     Инициализация связи с источником данных
     Использование события OnDataChange
     Создание элемента управления с возможностью редактирования данных
     Свойство Readonly
     События клавиатуры и мыши
     Обновление набора данных
     Создание заключительного сообщения
     Регистрация компонентов
Резюме
Глава 10. Создание редакторов свойств и компонентов
Создание пользовательских редакторов свойств
     Метод GetAttributes()
     Метод GetValue()
     Метод SetValue()
     Метод Edit()
     Метод GetValues()
     Свойства класса TPropertyEditor
     Выбор оптимального редактора свойств
Свойства и исключительные ситуации
Регистрация пользовательских редакторов свойств
     Получение указателя TTypelnfo* на основе существующего свойства и класса для библиотечного типа
     Получение указателя TTypelnfo* вручную для небиблиотечного типа
     Получение указателя TTypelnfo* для небиблиотечного типа
     Правила переопределения редакторов свойств
Использование изображений в редакторах свойств
     Метод ListMeasureWidthQ
     Метод ListMeasureHeightQ
     Метод ListDrawValueQ
     Метод PropDrawValueQ
     Метод PropDrawNameQ
Инсталляция пакетов только для редактирования
Использование связанных списков изображений в редакторах свойств
     Метод GetAttributesQ
     Метод GetComponentImageList()
     Метод GetValuesQ
     Методы ListMeasureWidth() и ListMeasureHeightQ
     Метод ListDrawValueQ
     Метод PropDrawValueQ
     Замечания по поводу отображения рисунков
     Связь со списком TCustomlmageList родительского компонента
     Обобщенное решение для свойств Imagelndex
Создание пользовательских редакторов компонентов
     Метод EditQ
     Метод EditPropertyQ
     Метод GetVerbCountQ
     Метод GetVerbQ
     Метод Prepareltem()
     Создание пользовательских обработчиков событий для элементов контекстного меню
     Создание подчиненных команд меню
     Метод ExecuteVerbQ
     Метод Сору()
Регистрация редакторов компонентов
Использование заданных изображений в пользовательских редакторах свойств и компонентов
     Включение файлов ресурсов в пакеты
     Применение ресурсов в редакторах свойств и компонентов
Регистрация категорий свойств в пользовательских компонентах
     Категории и их создание
     Регистрация свойств в категории
Резюме
Глава 11. Другие методы настройки компонентов
Дополнительные вопросы настройки пользовательских компонентов
     Отображение опубликованных свойств свойства-класса в окне Object Inspector
     Использование пространств имен в списках параметров событий
     Что нужно учесть при создании списка параметров события
     Переопределение динамических методов
     Управление сообщениями в пользовательских компонентах
     Применение карты сообщений для управления сообщениями в визуальных компонентах
     Переопределение метода WndProcQ для управления сообщениями в визуальных компонентах
     Использование методов AllocateHWndQ и DeallocateHWndQ для обработки сообщений в невизуальных компонентах
     Использование невизуальных компонентов для ответа на сообщения, посланные другим компонентам
     Применение функций обратного вызова в компонентах
     Соображения по поводу выбора фундаментальных типов свойств
     Тип int
     Тип long int
     Тип short int
     Тип unsigned int
     Тип unsigned short
     Тип unsigned long
     Тип char, unsigned char и signed char
     Тип double, long double и float
     Заключительные замечания по поводу выбора типа свойства
     Управление режимом использования компонента
Фрэймы
     Что такое фрэйм
     Класс TCustomFrame
     Работа с фрэймами при создании приложения
     Работа с фрэймами при выполнении приложения
     Создание класса-наследника TFrame
     Практический пример: применение фрэймов для создания всплывающего окна
     Наследование от класса-наследника TFrame
     Повторное использование фрэймов
     Заключительные замечания по поводу применения фрэймов
Распространение компонентов
     Упаковка компонентов
     Размещение распространяемых файлов
     Именование пакетов и модулей в них
     Именование компонентов
     Распределение пакетов времени создания
     Распространение компонентов для разных версий C++Builder
     Определение версии компилятора при компиляции
     Функция ValidCtrCheckO
     Применение пакетов и C++Builder версии 1
     Применение наборов Set в компонентах
     Изображения в палитре компонентов Component Palette
     Рекомендации по проектированию распространяемых компонентов
     Другие вопросы распространения компонентов
Резюме
ЧАСТЬ II. ОБМЕН ИНФОРМАЦИЕЙ, БАЗЫ ДАННЫХ И ПРОГРАММИРОВАНИЕ WEB
Глава 12. Программирование обмена информацией
Обмен информацией по последовательным каналам
     Протокол обмена информацией
     Выбор протокола
     Прикладной протокол
     Транспортный протокол
     Процессор обработки состояний
     Производительность против надежности
     Сбои и ошибки
     Архитектура
     Методы синхронизации потоков
     Буферизация
     Некоторые соображения, касающиеся последовательного обмена
Протоколы Internet - SMTP, FTP, HTTP, POP3
     Сетевые компоненты в составе C++Builder
     Приложение ChatServer
     Создание приложения
     Заполнение списка пользователей
     Запуск и останов работы сервера
     Управление подключениями
     Обработка имен пользователей и передача сообщений
     Клиентское приложение для сервера ChatServer
     Создание приложения
     Передача серверу имени пользователя и других сообщений
     Обработка сообщений, поступивших от сервера
     Приложение для работы с электронной почтой
     Создание приложения
     Включение в приложение компонентов поддержки протокола POP
     Извлечение и просмотр сообщений
     Формирование и отсылка сообщений по электронной почте
     Разработка HTTP-сервера
     Включение Web Server Socket в приложение
     Обработка запросов к серверу
     Клиентское приложение, использующее протокол FTP
     Создание приложения
     Подключение к FTP-серверу
     Составление перечня содержимого сервера
     Обработка списка и загрузка файлов
     Завершение текущего сеанса и пересылка файлов
Резюме
Глава 13. Программирование Web-сервера
Web Module
Мастер Web Server Application Wizard
     Приложение типа CGI
     Приложение типа WinCGI
     Приложение типа ISAPI/NSAPI
     Сравнение CGI с ISAPI
Поддерживающие компоненты WebBroker
     Компонент TWebDispatcher
     Компонент TWebModule
     Класс TWebResponse
     Класс TWebRequest
Web-серверы
Производящие компоненты WebBroker
     Компонент TPageProducer
     Компонент TDataSetPageProducer
     Компонент TDataSetTableProducer
     Компонент TQueryTableProducer
     Мастера Web-приложений
     Обработка состояния
     Расширенные URL
     Сообщения cookies
     Скрытые поля
Безопасность в сети Web
     Протокол Secure Sockets Layer
     Авторизация
     Заголовки HTTP
     Ошибки в библиотеке VCL Delphi
     Создание защищенных Web-приложений
     О чем следует задуматься
     Криптография
     Протоколы, алгоритмы и однонаправленное хеширование
     Обеспечение безопасности виртуального магазина
     Заключение
HTML и XML
     Язык XML
InternetExpress
     Обработка заказов
     Компонент TMidasPageProducer
     Редактор Web-страниц
     Запуск на выполнение
     Новая версия просмотра данных в режиме "главный-подчиненный"
     Оформление Web-страниц
Резюме
Глава 14. Программирование БД-приложений
Архитектура БД-приложений
     Ядро Borland Database Engine
     Базовая BDE-архитектура (одноуровневая)
     Преимущества
     Недостатки
     BDE/SQL Links (клиент/сервер)
     Преимущества
     Недостатки
     Распределенная (многоуровневая) архитектура
     Преимущества
     Недостатки
Методы доступа к данным
     Специализированные компоненты
     Преимущества
     Недостатки
     ODBC с использованием BDE
     Преимущества
     Недостатки
     Подключение к ODBC через специализированные компоненты
     Преимущества
     Недостатки
     ADO (ActiveX)
     Преимущества
     Недостатки
     Внедренный SQL-код
     Преимущества
     Недостатки
     API СУБД
     Преимущества
     Недостатки
     Архитектура БД-приложений - выводы
     Источники дополнительной информации
Язык SQL
     Таблицы и индексы
     Параметры
     Команды insert, update, delete и select
     Команда insert
     Команда update
     Команда delete
     Команда select
     Функции совместной обработки записей
Компоненты для работы с ADO в составе C++Builder
     Сравнение ADO и ВОЕ
     Компоненты группы ADOExpress
     Подключение к базе данных
     Класс TADOCotmection
     Провайдер
     Строка подключения
     Транзакции
     Использование значений по умолчанию
     Доступ к наборам записей
     Доступ к набору записей с помощью компонента TADOTable
     Доступ к набору записей с помощью TADOQuery
     Работа с хранимыми процедурами с помощью TADOStoredProc
     Класс TADOCommand
     Использование компонента TADODataset для доступа к набору записей
     Управление транзакциями
     Обработка событий в ADO-компонентах
     Обработчики событий компонента TADOConnection
     Обработчики события компонента TADOCommand
     Обработчики события компонентов, производных от TADOCustomDataSet
     Создание прототипа БД-приложения
     Получение от пользователя строки подключения
     Считывание имен таблиц базы данных
     Извлечение имен полей
     Извлечение имен хранимых процедур
     Настройка оптимальной производительности
     Работа с запросами или с таблицами
     Выбор места размещения курсора
     Типы курсоров
     Буферизация
     Обработка ошибок
     Многоуровневые приложения и ADO
Извлечение данных в приложении
     Базовые решения
     Выбор между TTable, TStoredProc и TQuery
     Свойство CachedUpdates
     Поля просмотра
     Извлечение данных из нескольких источников
     Использование кэш-буфера обновлений запроса
     Связь "главный-подчиненный"
     Связи "главный ] подчиненный ] подчиненный" и "главный ] подчиненный/главный ] подчиненный"
     Связь "главный (только для чтения) ] главный (чтение/запись) подчиненный"
Конструирование модулей данных
     Назначение модуля данных в БД-приложении
     Использование модулей данных в приложениях, DLL, и распределенных объектах
     Структура модуля данных
     Добавление свойств в класс модуля данных
     Использование Data Module Designer
     Вкладка Components окна Data Module Designer
     Редактор структуры базы данных
     Методика работы с модулями данных
     Наследование в системе классов модулей данных
     Особенности использования механизма наследования при работе с модулями данных
     Как избежать зависимости от специфики интерфейса пользователя
     Совместная работа модуля данных со специализированными компонентами
     Использование модулей данных в составе пакета
Набор компонентов InterBase Express
     Структура базы данных приложения Bug Tracker
     Бизнес-правила базы данных
     Генераторы, триггеры и хранимые процедуры
     Генераторы
     Триггеры
     Хранимые процедуры
     Реализация приложения Bug Tracker
     Отладка приложений, работающих с СУБД InterBase
     Создание базы данных и подключение к базе данных
     Использование транзакций
     Доступ к информации
     Установка приложения Bug Tracker
     Выполнение транзакций
     Выполнение приложения Bug Tracker
Резюме
Предметный указатель