Главная » C++, C++ Builder » Работа с базами данных в CBuilder

0

Одна из наиболее важных особенностей системы CBuilder — встроенная в нее возможность (и соответствующие условия) работы с базами данных. Для начала программист на С++ получит возможность простейшего доступа к базам данных за счет предоставляемых стандартных компонентов, которые в CBuilder поддержива ют большое количество разнообразных форматов. Стандартные форматы баз данных фирмы Borland, поддерживаемые напрямую Borland Database Engine (демон поддержки баз данных фирмы Borland), включают в себя dBase, Paradox и InterBase. Кроме  того,  последняя  версия  CBuilder  содержит  драйверы,  которые  позволяют  осуществлять

Connectivity) может быть использована с CBuilder, что предоставляет вам доступ практически к любой базе данных, существующих в мире программ под Windows.

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

В этой главе мы сделаем чуть больше, чем пробежка по верхам объектов баз данных в CBuilder. Кроме изучения присоединения к базам данных ODBC, мы рассмотрим внутреннее устройство баз данных, создав Проводник полей баз данных, который позволит вам просмотреть поля и их типы в выбранной вами базе данных. Мы рассмотрим создание таблиц баз данных «на ходу», в соответствии с запросами пользователя. Мы даже создадим программу просмотра баз данных (что мы анонсировали выше), который позволит загружать произвольные записи баз данных в сетку просмотра (grid). Это предоставит пользователю возможность  по  своему усмотрению  выбирать базу данных, выводить на экран поля, которые его интересуют , и даже отфильтровывать записи, которые его не  интересуют. Все  это реализовано буквально в нескольких строках, написанных программистом (в данном случае, мной). Короче говоря, эта глава очень насыщена материалом, который вы наверняка захотите применить в ваших собственных приложениях.

Разбираемся  во внутреннем устройстве баз данных

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

То, что находится в базе данных кроме самих данных, называется схемой (schema). Схема представляет собой описание для каждого поля, которое образовывает столбец в базе  данных. Схема описывает такие вещи, как данные о полях, об индексах и об общем количестве полей в каждой таблице базы. В большинстве классов C++ прослеживается тенденция игнорировать эту сторону проблемы, фокусируя свое внимание вместо этого (что понятно) на собственно данных в базе. Время от времени, тем не менее, вам будет нужно просмотреть нестандартные базы. Хорошим примером могут служить приложения, занимающиеся импортом данных, распространением баз данных или отображением баз данных из WWW. Все эти типы приложений должны уметь загружать базы данных любого выбранного пользователем типа, не зная при этом ничего о полях данных, на основе которых реализованы эти базы.

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

Я покажу вам, как изучить поля в базе данных, определив не только название полей, но также типы и размер полей. Владея такой информацией, написание в CBuilder генеральной программы

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

С какой стати CBuilder будет располагать всей информацией о полях и структуре базы? На самом

деле все системы управления базами данных нуждаются в информации схемы. CBuilder она нужна для поддержки полей, воспринимающих данные (data-aware fields), например, для класса DBGrid. Если информация уже получена, почему бы не сделать ее доступной для использования и программисту? Действительно, почему бы и нет.

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

По теме:

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