Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
база данных.docx
Скачиваний:
167
Добавлен:
24.03.2015
Размер:
5.83 Mб
Скачать

Компоненты приложений для баз данных

Как и другие элементы управления С++ Builder, связанные с БД компо ненты делятся на визуальные и невизуальные. Невизуальные компоненты предназначены для организации доступа к данным, содержащимся в табли­цах. Они представляют собой промежуточное звено между данными таблиц БД и визуальными компонентами.

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

Компоненты, используемые для работы с БД, находятся на страницах Data Access, Data Controls, obExpress, OataSnap, BDE, ADO, InterBase, Decision Cube, QReport и InterBase; Admin Палитры компонентов. Некоторые компо­ненты предназначены специально для работы с удаленными БД в архитекту­ре «клиент-сервер». Рассмотрим важнейшие компоненты, расположенные на наиболее часто используемых страницах при раооте с базами данных.

На о ранице Data Access (рис. 11.14) находятся невизуальные компонен­ты, предназначенные для организации доступа к танным, например:

  • DataSource (источник данных);

  • ClientDataSet (клиентский набор данных);

  • DataSet Provider (провайдер набора данных);

  • ХМ L Transform (преобразователь документа XML в пакет данных и об- ратно ).

bvstem Data Access | Data Controls | db

Г7" I о W=L &Ш «1 ?XML AIM

Рис. 11.14. Страница Data Access

На странице Data Controls (рис. 11.15) расположены визуальные компо­ненты, предназначенные для управления данными:

  • DBGrid (сетка, или габ. шца);

  • DB Navigator (навигационный интерфейс);

  • DBText (надпись);

  • DBEdit (однострочный редактор, или поле редактирования);

  • DBMemo (многострочный редактор, или пашль редактирования);

  • DBImage (графическое изображение);

  • DBLiStBox (список);

  • DBComboBox (комбинированный список;;

  • DBCheckBox (ф. гажок);

  • DBRadioGroup (группа переключателей);

  • DBLookupListBox (список, формируемый по полю другого набора данных);

  • DBLookupComboBox (комбинированный список, формируемый по полю другого набора данных);

  • DBRichEdit (полнофункпионал! ный тестовый редактор, или поле редак­тирования);

  • DBCtrlGrid (модифицированная сетка);

  • DBChart (диаграмма).

SvstemJ Data Access Data Controls | HhFxDress J DataSn*» | BDE | ADO | InterBase!

Рис. 11.15. Страница Data Controls

Страница BDE (рис. 11.16) содержит компоненты, предназначенные для управления данными с использованием BDE:

  • Table (набор данных, основанный на таблице БД);

  • Query (набор данных, основанный на SQL-запросе);

  • StoredProc (вызов хранимой процедуры сервера);

  • DataBase (соединение с БД);

  • Session (текущий сеанс работы с БД);

  • BatchMove (выполнение операций над группой записей);

  • UpdateSQL (изменение набора данньп:, основанного на SQL-запросе или хранимой процедуре);

  • NestedTable (вложенная таблица)

  • BDECIientDatc»set (клиентский набор данных)

DataSnap BDE | Interb^ ■ | Webbervice^ 1 Int

IT

Щ.Р

Рис. 11.16. Страница BDE

На странице ADO (рис. 11.17) расположены компоненты, предназначен­ные для управления данными с использованием технологии ADO (Active Data Objects):

  • ADOConnection (соединение);

  • ADOCommand (команда);

  • ADODataSet (набор данных);

  • ADOTable (набор данных Table);

  • ADOQuery (набор данных Query);

  • ADOStoredProc (вызов хранимой процедуры сервера);

  • RDSConnection (соединение RDS).

DataSnao| BDE ADO | InterBase | WebSa

fF

Рис. 11.17. Страница ADO

Замечание

Соединение RDS служит для управления передачей объекта Recordset от одного процесса (компьютера) к другому при создании серверных приложе­ний.

На странице QReport (рис. 11.18) находятся компоненты, предназначен­ные для построения отчетов:

  • QuickRep (отчет);

  • QRSubDetail (полоса отчета для таблиц, связанных отношением «глав­ный-подчиненный»);

  • QRStringsBand (строковая полоса отчета);

  • QRBand (полоса отчета);

  • QRChildBand (дочерняя полоса отчета);

  • QRGroup (группа);

  • QRLabel (надпись);

  • QRDBText (текстовое поле набора данных);

  • QRExpr (выражение);

  • QRSysData (системная информация);

  • QRMemo (многострочный текст);

  • QRExprMemo (многострочное выражение);

  • QRRichText (форматированный текст);

  • QRDBRichText (форматированный текст поля набора данных);

  • QRShape (геометрическая фигура);

  • QRImage (графический образ);

  • QRDBImage (графический образ поля набора данных):

  • QRCompositeReport (составной отчет);

  • QRPreview (окно просмотра отчета);

  • QRTextHlter (текстовый фильтр);

  • QRCSVFilter (CSV -фильтр);

  • QRHTMLFilter (HTML-фильтр);

  • QRChart (диаграмма).

fwe.I IntemrtB mess] Irterr slj WehSivo| Fa.!Net| Deu"iionQi>r QRepoi Dk'oosI Win311 рлтые! ] кцvej; I со Uj

'Iflal Ъ Sj4 ЪЪЪЧЪ

Рис. 11.18. Страница QRepori.

Имена многих компонентов, предназначенных для работы с данными, со­держат префиксы, например, DB, IB или QR. Префикс DB означает, что визу- а 1ьный компонент связан с данными и используется для пос троения интер­фейсной части приложения. Такие компоненты размещаются в форме и предназначены для управления данными со стороны пользователя. Префикс QR означает, что компонент используется для построения отчетов QReport.

Исключения при работе с базами данных

В дополнение к рассмотренным ранее исключениям, специально для опе­раций, связанных г работой приложений для БД, система С++ Builder предо­ставляет следующие дополнительные классы исключений:

  • EDatabaseError - ошибка БД; потомки этого класса:

  • EDBEnnirieErior — ошибка ВПЕ (для локальных БД и сетевых БД ар­хитектуры «файл-сервер»);

  • EDBCIient — ошибка в приложении клиента (для сетевых БД архи­тектуры «клиент-сервер»); код ошибки возвращается BDE. АПО, dbExpress или другим механизмом доступа к данным;

  • EUpd^teError — ошибка, возникающая при обновлении записей;

  • EDBEdifEt ror — введенное в поле значение не соответствует типу поля. К пасс EDatabr.sf: Err с предна игачен д ля обработки ошибок, возникающих при

выполнении оп"п,щин с набором данных (класс TDataSet и его потомки, в пер вую очередь, TTaoie и TQuery). Этот класс производится непосредственно от класса ExceDtion. Исключение класса EDatabasjError генерируется, например, при попы псе открыть набор данных, связанный с отсутствуй идей таблицей, или изменить запись набора данных, который находится в режиме просмотра.

Класс EDBEngineErroi предназначен для обоаботки ошиоок, возникающих при работе с процессором баз данных BDE на локальном компьютере. Класс TDBError сод( ржит информацию об исключении EDBEngineError, опреде­ляемую следующими свойствами:

  • Message типа Striny (текст сообщения, характеризующего возникшую ошибку);

  • ErrorCode гипа DBIResult (код ошибки), тип DBIResult соответствует типу Word;

  • Category типа Byte (категория исключения);

  • SubCode типа Byte (группа, или подкод, исключения);

  • NativeError типа Longint (код ошибки, возвращаемой сервером) - - если значение этого свойств? равно нулю, то исключение произошло не на сервере.

Класс EDBCIient отличается от класса EDBEngineError в основном тем, что предназначен для обработки ошибок, возникающих при работе с различны­ми механизмами доступа к данным (не то лько с процессором баз данных BDE) в операция < с сетевыми базами архитектуры «клиент-серзер».

Генерируемые при работе с БД исключения обраба гывают глобальные и локальные обработчики. Кроме того, используемые для доступа к данным компоненты имеюл специальные события для об рабой ки исключений.

Например, для набора данных Table такими событиями являются:

  • OnEditFrror (ошибка редактирования или вставки записи);

  • OnPostError и OnUpdateE rror (ошибка закреп ления изменений в записи);

  • OnDeleteError (ошибка удаления записи).

Класс EDBEditError используется в случаях, когда вводимые в поле дан­ные несовместимы с маской ьвода, заданной с помощью свойства Efl'tMask этого поля. Отметим, Что для проверки вводимых в поле значений можно так­же использовать собьп ия OnSetText, OnValidate и OnChange.