Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Builder 2курс.doc
Скачиваний:
6
Добавлен:
16.11.2019
Размер:
1.26 Mб
Скачать

6. Лабораторная работа №5

Тема: Создание  локальной БД в С++Builder

Изучение утилит Database Desktop (dbd), bd Administrator Использование компонентов tDataModule, tTable, tDataSet

6. 1. Краткие теоретические сведения

BDE (Borland Database Engine) выполняет роль шлюза для всех баз данных, доступ к которым осуществляется с помощью среды C++Builder. BDE обеспечивает прямой доступ к таблицам Paradox, dBase, а также обеспечивает скоростной доступ к базам данных в системах клиент-сервер.

При работе с таблицами локальных БД ( в число которых входят таблицы СУБД Paradox  и dBase) сама база данных размещается в каталоге на диске и хранится в виде набора файлов. Для хранения одной таблицы используется отдельный файл. Такие же отдельные файлы создаются для хранения индексов таблицы и мемо-полей. Обращение к БД из утилит и программы осуществляется по псевдониму базы данных. Псевдоним должен быть зарегистрирован  в файле конфигурации конкретного компьютера при помощи утилиты BDE Administrator [1].

6. 2. Модуль данных

Чтобы не перегружать окно формы служебными пиктограммами, в  состав C++Builder включен компонент TDataModule, который может использоваться для хранения невидимых элементов управления, таких как TTable и TDataSource. Кроме того,  компонент TDataModule представляет собой единый источник для хранения бизнес-правил, связанных с конкретной БД, таблицей или набором таблиц.

6. 3. Доступ к содержимому поля

Если требуется прочитать текущее содержимое определенного поля конкретной записи, то можно воспользоваться свойством Fields и функцией FieldByName, например:

S=Table->Fields->Fields[0]->AsString;

Если требуется получить целочисленное значение, то используют свойство AsInteger.

S=Table->FieldByName(“CustNo”)->AsString;

Это поле имеет тип данных Float. Свойство Value объекта TField объявлено как Variant, поэтому оно автоматически выполняет преобразование большинства типов данных.

6. 4. Поиск записей

Чтобы найти определенное значение в наборе данных, можно вызвать один из пяти методов объекта TDataSet: FindKey, FindNearest, SetKey,GotoNearest, GotoKey. Эти процедуры используются для индексированных полей. Для неиндексированных полей используется метод Locate.

6. 5. Фильтры

Осуществить фильтрацию в произвольных полях можно с помощью события OnFilterRecord.

 

6. 6. Задание

1. Создайте простое клиентское приложение  БД  (компоненты TTable,TDataSource, TDGid), используя таблицы из примеров C++Builder.

2. Создайте простое клиентское приложение БД с использованием модуля данных.

3. Создайте в клиентском приложении, разработанном в задании №1 четыре кнопки, при нажатии на каждую выводится окно сообщения с текущим значением поля TaxRate. Одна кнопка должна использовать свойство Value, три остальные кнопки инициируют жесткое преобразование с использованием свойств AsString, AsInteger, AsFloat.

4. Создайте простое клиентское приложение, в котором выполняется пошаговый поиск. Самостоятельно изучите другие методы поиска.

5. Для таблицы Country_r создайте приложение, позволяющее устанавливать фильтр по полю Kontinent.