Главная » C++, C++ Builder » Вторая стадия: добавление в базу данных – приложение просмотра классов в CBuilder

0

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

Добавить необходимые для хранения загруженной информации части в нашу программу вовсе не сложно. Все, что нам надо, — это добавить несколько таблиц и кнопку для начала импорта данных из списков в базу. Обновленная  версия  формы  приложения  просмотра  классов  показана  на рис. 17.3.

Рис. 17.2. Приложение просмотра файлов в действии

Рис. 17.3. Обновленная форма приложения просмотра классов

В нашей новой версии мы собираемся добавить функцию, которая будет сохранять  данные  о классах в таблицах базы данных. Первое, что нам  понадобится, — это, естественно,  несколько таблиц, в которых мы и будем хранить данные.

Для их создания мы воспользуемся программой создания баз данных, освоенной нами в одной из предыдущих глав (в конце концов, не в этом ли основная прелесть многократного использования кода?).

В этом приложении нам потребуются три таблицы баз данных — имен классов (ClassNames), методов (Methods) и свойств (Properties). Очевидно, что таблица ClassNames, содержащая имена классов, загруженные из заголовочного файла, должна содержать поля для имени класса и уникального идентификатора класса. Поскольку имена классов уникальны только  в  пределах одной именованной области видимости, для создания связей между таблицами нам и потребуется уникальный идентификатор класса. В табл. 17.1 показаны поля, которые мы будем использовать в таблице имен классов.

Таблица 17.1. Таблица ClassNames

Поле                  Тип            Длина ClassId        Character String    10 ClassName Character String     80

Определив поля, можно воспользоваться программой создания баз данных для добавления этих полей в таблицу. Итак, создайте таблицу с именем Names.DBF — файл dBase, который мы будем использовать далее в нашем приложении.

Таблица методов

Мы определили основную таблицу для нашей базы данных, теперь надо строить сопроводительные. В первой будет храниться информация о методах класса. В данном случае нам надо хранить только собственно описание метода. Нам не надо анализиро вать индивидуальные особенности метода (такие, как возвращаемое значение и аргументы). На самом деле мы вовсе не нуждаемся даже в имени метода. Почему? Все, что мы собираемся сделать, — это позволить пользователю генерировать методы в заголовок  класса и исходный файл при генерации нового компонента. По этой причине нет никакой нужды разделять имя метода, типы возвращаемых значений и параметры. Более того, это привело бы к тому, что выбрать загружаемые методы в списке стало бы попросту невозможно. Поэтому все, что нам надо хранить, — это класс, которому принадлежит метод (чтобы мы могли найти его), и описание метода.

В табл. 17.2 показана структура таблицы методов. Идентификатор класса — то же самое значение, что и в таблице имен классов. Название метода — это строка,  содержащая  полное  описание метода. Когда пользователь выбирает метод для записи  в  новый  компонент,  мы  просто записываем целиком имя метода, хранящееся в этой таблице.

Таблица 17.2. Таблица Methods

Поле

Тип

Длина

ClassId

Character String

10

Method

Character String

255

Используя программу создания баз данных, создайте новую таблицу с именем Methods.DBF. Это файл dBase, который мы будем использовать для хранения информаци и о методах, полученной нами при анализе заголовочного файла. Каждый раз, когда в таблицу классов будет заноситься очередное название, мы будем присваивать ему идентификатор. Тот  же  самый  идентификатор будет записываться и при добавлении в таблицу методов, что позволит нам без труда организовать ссылки между таблицами и увязать необходимую нам информацию.

Источник: Теллес М. – Borland C++ Builder. Библиотека программиста – 1998

По теме:

  • Комментарии