Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 88
Текст из файла (страница 88)
рис. 11.19).ЗаданиепаролейПароль позволяет задать права доступа пользователей ( п р и л о ж е н и й ) ктаблице. Если для таблицы установлен пароль, то он будет автоматическизапрашиваться при каждой попытке открытия таблицы.Пароль действует на физическом уровне и его действие распространяетсяна все программы, выполняющие доступ к таблице: как на программы типаDatabase Desktop, так и на создаваемые приложения С++ Builder.Д л я выполнения операций, связанных с заданием пароля, нужно выбратьстроку P a s s w o r d S e c u r i t y в комбинированном списке T a b l e p r o p e r t i e s окнаопределения структуры таблицы (см. рис. 11.19).ЗаданиеязыковогодрайвераД л я задания языкового драйвера нужно выбрать пункт T a b l e L a n g u a g e(Язык таблицы) комбинированного списка T a b l e p r o p e r t i e s окна определения структуры таблицы (см.
рис. 11.19).ИзменениеструктурытаблицыСтруктуру существующей таблицы можно изменить, выполнив командупосле предварительного выбора таблицы в окне программы Database Desktop. В результате открывается окно определения структурытаблицы, и дальнейшие действия не отличаются от действий, выполняемыхпри создании таблицы.Table\RestructureЧасть 3. Современные СУБД и их применение420При изменении структуры таблицы с ней не должны работать другие приложения, в том числе С++ Builder. Поэтому предварительно необходимо закрыть С++ Builder или приложение, в котором компоненты T a b l e связаны сперестраиваемой таблицей. Другим вариантом является отключение активности компонентов T a b l e , связанных с перестраиваемой таблицей, для чегосвойству A c t i v e этих компонентов через Инспектор объектов устанавливаетс я з н а ч е н и е false.Переименование таблицы следует выполнять из среды программы DatabaseDesktop, а не из среды Windows, например, с помощью Проводника.
Для этого при работе со структурой таблицы можно нажать кнопку S a v e a s и задатьновое имя таблицы. В результате в указанном каталоге диска появятся всенеобходимые файлы таблицы. При этом старая таблица также сохраняется.Информация о названии таблицы используется внутри ее файлов, поэтомупростое переименование всех файлов таблицы приведет к ошибке при попытке доступа к ней.Если необходимо просто ознакомиться со структурой таблицы, то выполняется команда T a b l e \ l n f o S t r u c t u r e . В результате появляется окно определения структуры таблицы, но элементы, с помощью которых в структуру таблицы могут быть внесены изменения, заблокированы. Просмотр структурывозможен также для таблицы, с которой связаны другие приложения.1 1 .
8 . Создание п р и л о ж е н и я BDEДля примера рассмотрим создание приложения, использующего механизмдоступа BDE и позволяющего перемещаться по записям таблицы БД, просматривать и редактировать поля, удалять записи из таблицы, а также вставлять новые. Файл проекта приложения обычно не требует от разработчикавыполнения каких-либо действий.
Поэтому при создании приложения главной задачей является конструирование форм, в простейшем случае — однойформы.Вид формы приложения на этапе проектирования показан на рис. 11.21,где в форме размещены компоненты T a b l e l , D a t a S o u r c e l , D B G r i d l иDBNavigatorl.Компонент T a b l e 1 обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей нужно установить в соответствующие значения свойство D a t a B a s e N a m e , указывающее путь к БД, и свойство T a b l e N a m e , указывающее имя таблицы. После задания таблицы для открытия набора данныхсвойству A c t i v e должно быть установлено значение t r u e .Свойству A c t i v e нужно устанавливать значение true после задания таблицы БД, т. е.
после установки нужных значений свойств D a t a B a s e N a m e иTableName./ I. Borland С++ Builder421I (\П, Form2NAME[Angel Fishr" i 'WEIGHTSIZE|1 " I2м1шщ==2'A js• I• **Шj 4Ч | с jРис. 11.21. Форма приложения для работы с БДИмя таблицы лучше выбирать в раскрывающемся списке в поле значениясвойства T a b l e N a m e . Если путь к БД (свойство D a t a B a s e N a m e ) задан правильно, то в этом списке отображаются главные файлы всех доступных таблиц.В рассматриваемом приложении использована таблица животных, входящая в состав поставляемых с С++ Builder примеров, ее главный файл —Animals.dbf. Файлы этой и других таблиц примеров находятся в каталоге, путьк которому указывает псевдоним dbdemos.
Настройка псевдонима может бытьвыполнена с помощью программы BDE Administrator.Компонент D a t a S o u r c e l является промежуточным звеном между компонентом T a b l e 1, соединенным с реальной таблицей БД, и визуальными компонентами D B G r i d l и D B N a v i g a t o r l , с помощью которых пользователь взаимодействует с этой таблицей. На компонент T a b l e 1, с которым связанкомпонент D a t a S o u r c e l , указывает свойство D a t a S e t последнего.Компонент D B G r i d l отображает содержимое таблицы БД в виде сетки, вкоторой столбцы соответствуют полям, а строки — записям таблицы.
По умолчанию пользователь может просматривать и редактировать данные. Компонент D B N a v i g a t o r l позволяет пользователю перемещаться по таблице, редактировать, вставлять и удалять записи. Компоненты D B G r i d l и D B N a v i g a t o r lсвязываются со своим источником данных — компонентом D a t a S o u r c e l —через свойства D a t a S o u r c e .Взаимосвязь компонентов приложения и таблицы БД и используемые приэтом свойства компонентов показаны на рис. 11.22.Форма приложенияРис.
11.22. Взаимосвязь компонентов приложения и таблицы БДЧасть 3. Современные СУБД и их применение422Разрабатывая приложение, можно задавать значения всех свойств компонентов с помощью Инспектора объектов. При этом требуемые значения либонепосредственно вводятся в поле, либо выбираются в раскрывающихся списках. В последнем случае приложение создается с помощью мыши и не требует набора каких-либо символов на клавиатуре. В табл. 11.2 приведены компоненты, используемые для работы с таблицей БД, их основные свойства изначения этих свойств.В дальнейшем при организации приложений, использующих механизмдоступа BDE, предполагается, что названные компоненты связаны междусобой именно таким образом, и свойства, с помощью которых эта связь осуществляется, не рассматриваются.Т а б л и ц а 11.2.Значения свойств компонентовКомпонентСвойстваЗначенияTable 1DataBaseNameTableNameActivedbdemosAnimals.dbftrueDataSourcelDataSetTable 1DBGridlDataSourceDataSourcel.
DataSourceDataSourcelDBNavigatorlДля автоматизации процесса создания формы, использующей компоненты для операций с БД, можно вызвать D a t a b a s e F o r m W i z a r d ( М а с т е р ф о р мб а з д а н н ы х ) . Этот Мастер расположен на странице B u s i n e s s Хранилищаобъектов.Мастер позволяет создавать формы для работы с отдельной таблицей и сосвязанными таблицами, при этом можно использовать наборы данных T a b l eи л и Query.1 1 . 9 .
Работа с отчетамиОтчет представляет собой печатный документ, в котором содержит такиеже данные, как получаемые в результате выполнения запроса к БД. Можновыделить следующие виды отчетов: простой; с группированием данных; длятаблиц, связанных отношением «главный-подчиненный»; составной, объединяющий несколько разных отчетов. В С++ Builder для создания отчетовслужит генератор отчетов QuickReport, содержащий большой набор компонентов. Мы рассмотрим средства создания отчета и приведем пример создания простого отчета./ I.
Borland С++ Builder423КомпонентыотчетаКомпоненты, предназначенные для создания отчетов, находятся на странице Q R e p o r t Палитры компонентов. Большинство компонентов отчета являются визуальными. Многие из них мало отличаются от аналогичных комп о н е н т о в с т р а н и ц Standard, Additional и Data Controls. Н а п р и м е р , к о м п о н е н т уQRImageсоответствуют компоненты I m a g e и D B I m a g e .Главным элементом отчета является компонент-отчетQ u i c k R e p , представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета.