Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 86
Текст из файла (страница 86)
Borland С++ Builder409• InterBase Server Manager — программа для запуска сервера InterBase.• S Q L Links — драйверы для доступа приложений (с использованием B D E )к удаленным промышленным С У Б Д , таким как Microsoft SQL Server илиOracle.• dbExpress — набор драйверов для доступа к базам данных SQL (InterBase,DB2, Oracle, MSSQL, MySQL).• InterBase Server — клиентская и серверная части сервера InterBase.Одни инструменты, например, B D E Administrator и S Q L Explorer, можноиспользовать для работы с локальными и удаленными БД, другие, например,IBConsole, — для работы с удаленными БД.Компонентыдля базприложенийданныхКак и другие элементы управления С + + Builder, связанные с Б Д компоненты делятся на визуальные и невизуальные. Невизуальныекомпонентыпредназначены для организации доступа к данным, содержащимся в таблицах.
Они представляют собой промежуточное звено между данными таблицБ Д и визуальными компонентами.Визуальные компоненты используются для создания интерфейсной частиприложения. С их помощью пользователь может выполнять такие операциис таблицами БД, как просмотр или редактирование данных. Визуальные компоненты также называют элементами, чувствительными к данным.Компоненты, используемые для работы с БД, находятся на страницах D a t aAccess, Data Controls, dbExpress, DataSnap, BDE, ADO, InterBase, DecisionC u b e , Q R e p o r t и I n t e r B a s e A d m i n Палитры компонентов. Некоторые компо-ненты предназначены специально для работы с удаленными Б Д в архитектуре «клиент-сервер». Рассмотрим важнейшие компоненты, расположенные нанаиболее часто используемых страницах при работе с базами данных.На странице D a t a A c c e s s (рис.
11.14) находятся невизуальные компоненты, предназначенные для организации доступа к данным, например:• DataSource (источник данных);• ClientDataSet (клиентский набор данных);• DataSetProvider (провайдер набора данных);• X M L Transform (преобразователь документа X M L в пакет данных и обратно).SystemData Access | Data Controls | dbxmlГк" о » irn. ш£шРис. 11.14.
Страница Data AccessЧасть 3. Современные СУБД и их применение410На странице D a t a C o n t r o l s (рис. 11.15) расположены визуальные компоненты, предназначенные для управления данными:• DBGrid (сетка, или таблица);• D В Navigator (навигационный интерфейс);• DBText (надпись);• DBEdit (однострочный редактор, или поле редактирования);• DBMemo (многострочный редактор, или панель редактирования);• DBImage (графическое изображение);• DBListBox (список);• DBComboBox (комбинированный список);• DBCheckBox (флажок);• DBRadioGroup (группа переключателей);• DBLookupListBox (список, формируемый по полю другого набора данных);• DBLookupComboBox (комбинированный список, формируемый по полюдругого набора данных);• DBRichEdit (полнофункциональный тестовый редактор, или поле редактирования);• DBCtrlGrid (модифицированная сетка);• DBChart (диаграмма).System | Data AccessData Controls }dbEw«»S'| DataSnaD 1 BDE | ADO | InterBase! 1Рис.
11.15. Страница Data ControlsСтраница BDE (рис. 11.16) содержит компоненты, предназначенные дляуправления данными с использованием BDE:• T a b l e (набор данных, основанный на таблице БД);• Q u e r y (набор данных, основанный на SQL-запросе);• S t o r e d P r o c (вызов хранимой процедуры сервера);• DataBase (соединение с БД);• Session••••(текущий сеанс работы с БД);BatchMove (выполнение операций над группой записей);U p d a t e S Q L (изменение набора данных, основанного на SQL-запросе илихранимой процедуре);N e s t e d T a b l e (вложенная таблица)B D E C I i e n t D a t a s e t (клиентский набор данных)DataSnaDBDE| ADO | InterBase | WebServices | IntРис. 11.16. Страница BDE/ I. Borland С++ Builder411На странице A D O (рис.
11.17) расположены компоненты, предназначенные для управления данными с использованием технологии ADO (Active DataObjects):• ADOConnection (соединение);• ADOCommand (команда);• ADODataSet (набор данных);• ADOTable (набор данных Table);• ADOQuery (набор данных Query);• ADOStoredProc (вызов хранимой процедуры сервера);• RDSConnection (соединение RDS).Рис. 11.17. Страница ADOЗамечаниеСоединение RDS служит для управления передачей объекта Recordset отодного процесса (компьютера) к другому при создании серверных приложений.На странице QReport (рис. 11.18) находятся компоненты, предназначенные для построения отчетов:• QuickRep (отчет);• QRSubDetail (полоса отчета для таблиц, связанных отношением «главный-подчиненный»);• QRStringsBand (строковая полоса отчета);• QRBand (полоса отчета);• QRChildBand (дочерняя полоса отчета);• QRGroup (группа);• QRLabel (надпись);• QRDBText (текстовое поле набора данных);• QRExpr (выражение);• QRSysData (системная информация);• QRMemo (многострочный текст);• QRExprMemo (многострочное выражение);• QRRichText (форматированный текст);• QRDBRichText (форматированный текст поля набора данных);• Q R S h a p e (геометрическая фигура);• QRImage (графический образ);Часть 3.
Современные СУБД и их применение412• QRDBImage(графический образ поля набора данных);(составной отчет);Q R P r e v i e w (окно просмотра отчета);Q R T e x t F i l t e r (текстовый фильтр);Q R C S V F i l t e r (CSV-фильтр);• QRCompositeReport•••• QRHTMLFilter ( H T M L - ф и л ь т р ) ;• QRChart ( д и а г р а м м а ) .[vices ] IntemetExraess | Internet | WebSnao | FastNet | Decision Cube QReport | Dialoas | Win3.11 Samotesl ActiveX | C 0 J i .Рис. 11.18.
Страница QReportИмена многих компонентов, предназначенных для работы с данными, содержат префиксы, например, DB, IB или QR. Префикс DB означает, что визуальный компонент связан с данными и используется для построения интерф е й с н о й части п р и л о ж е н и я . Такие компоненты размещаются в ф о р м е ипредназначены для управления данными со стороны пользователя. ПрефиксQ R означает, что компонент используется для построения отчетов Q R e p o r t .Исключенияпри работес базамиданныхВ дополнение к рассмотренным ранее исключениям, специально для операций, связанных с работой приложений для БД, система С++ Builder предоставляет следующие дополнительные классы исключений:• E D a t a b a s e E r r o r — ошибка БД; потомки этого класса:• EDBEngineError — ошибка B D E (для локальных Б Д и сетевых Б Д архитектуры «файл-сервер»);• E D B C I i e n t — ошибка в приложении клиента (для сетевых Б Д архитектуры «клиент-сервер»); код ошибки возвращается BDE, A D O ,dbExpress или другим механизмом доступа к данным;• E U p d a t e E r r o r — ошибка, возникающая при обновлении записей;• E D B E d i t E r r o r — введенное в поле значение не соответствует типу поля.Класс E D a t a b a s e E r r o r предназначен для обработки ошибок, возникающих привыполнении операций с набором данных (класс T D a t a S e t и его потомки, в первую очередь, T T a b l e и T Q u e r y ) .
Этот класс производится непосредственно откласса E x c e p t i o n . Исключение класса E D a t a b a s e E r r o r генерируется, например,при попытке открыть набор данных, связанный с отсутствующей таблицей, илиизменить запись набора данных, который находится в режиме просмотра.Класс E D B E n g i n e E r r o r предназначен для обработки ошибок, возникающихпри работе с процессором баз данных B D E на локальном компьютере. КлассT D B E r r o r содержит информацию об исключении EDBEngineError, определяемую следующими свойствами:/ I.
Borland С++ Builder• Messageтипа413String(текст сообщения, характеризующего возникшуюошибку);• ErrorCodeтипутипаDBIResult(код ошибки), типDBIResultсоответствуетWord;• Categoryтипа B y t e (категория исключения);типа B y t e (группа, или подкод, исключения);• N a t i v e E r r o r типа L o n g i n t (код ошибки, возвращаемой сервером) — еслизначение этого свойства равно нулю, то исключение произошло не насервере.Класс E D B C I i e n t отличается от класса E D B E n g i n e E r r o r в основном тем, чтопредназначен для обработки ошибок, возникающих при работе с различными механизмами доступа к данным (не только с процессором баз данных BDE)в операциях с сетевыми базами архитектуры «клиент-сервер».Генерируемые при работе с БД исключения обрабатывают глобальные илокальные обработчики.
Кроме того, используемые для доступа к даннымкомпоненты имеют специальные события для обработки исключений.Например, для набора данных T a b l e такими событиями являются:• O n E d i t E r r o r (ошибка редактирования или вставки записи);• O n P o s t E r r o r и O n U p d a t e E r r o r (ошибка закрепления изменений в записи);• OnDeleteError (ошибка удаления записи).Класс E D B E d i t E r r o r используется в случаях, когда вводимые в поле данные несовместимы с маской ввода, заданной с помощью свойства EditMaskэтого поля.
Отметим, что для проверки вводимых в поле значений можно также использовать события O n S e t T e x t , O n V a l i d a t e и O n C h a n g e .• SubCode1 1 . 7 . Создание таблиц базы данныхРабота по созданию информационной системы включает два основныхэтапа: создание БД и создание приложения. Продемонстрируем возможности С++ Builder по работе с БД на примере создания простой информационной системы.
Эту информационную систему можно разработать даже без написания кода: все необходимые операции выполняются с помощью программыDatabase Desktop, Конструктора формы и Инспектора объектов.В простейшем случае БД состоит из одной таблицы. Если таблицы ужеимеются, то первый этап не выполняется. Отметим, что совместно с С++Builder поставляется большое количество примеров приложений, в том числе и приложений БД. Файлы таблиц для этих приложений находятся в каталоге c:\Program Files\Common Files\Borland Shared\Data. Готовые таблицытакже можно использовать для своих приложений.Для работы с таблицами БД при проектировании приложения удобно использовать программу Database Desktop, которая позволяет:Часть 3. Современные СУБД и их применение414• создавать таблицы;• изменять структуры;• редактировать записи.Кроме того, с помощью Database Desktop можно выполнять и другие действия над БД (создание, редактирование и выполнение визуальных и SQLзапросов, операции с псевдонимами).
Отметим, что большинство рассматриваемых действий по управлению структурой таблицы можно выполнить такжепрограммно.Процесс создания новой таблицы начинается с вызова командыF i l e \ N e w \ T a b l e ( Ф а й л \ Н о в а я \ Т а б л и ц а ) и происходит в интерактивном режиме. При этом разработчик должен:• выбрать формат (тип) таблицы;• задать структуру таблицы.В начале создания новой таблицы в окне C r e a t e Table ( С о з д а н и е т а б л и ц ы )выбирается ее формат. По умолчанию предлагается формат таблицы Paradoxверсии 7, который мы и будем использовать. Для таблиц других форматов, например dBase IV, действия по созданию таблицы практически не отличаются.После выбора формата таблицы появляется окно определения структурытаблицы (рис. 11.19), в котором выполняются следующие действия:Restructure Paradox 7 Table: aaaaa.dbField roster:Table properties:Field NameCodeNumber3 j FioA\ AddressTypeSizeKey]Secondary Indexes+S;""'j|^ine.r'"'i|AAind 1Modify....Г" Pack TableSaveSave As...CancelРис.