+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 94.09 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Использование компонентов DOA

17.08.2012 13:32
Kest

Для начала создания приложения в среде Delphi необходимо подключить базу данных. Это очень легко производится с помощью компонента TOracleSession. Вам просто необходимо положить этот компонент на форму и сделать некоторые настройки. Укажите свойства LogonUsername, LogonPassword и LogonDatabase. Затем вызовите метод LogOn или установите свойство Connected в положение True. 
Вообще, как правило, все не визуальные компоненты, такие как TTimer, TOpenDialog, TimageList и др., группируются в создаваемой программе в специальном модуле данных TDataModule. Модуль данных представляет собой хранилище объектов, которое позволяет централизованно управлять их работой и отделяет программную логику, связанную с базой данных, от программного кода, выполняющего вычислительные действия и отображение данных на форме. Для создания нового модуля данных необходимо зайти в соответствующий пункт меню (см. Рисунок 3.1).
Создание Data Module
Рисунок 3.1 - Создание Data Module
Далее нам необходимо выбрать нужные данные из базы данных. Для этого используем компоненты TOracleDataSet и TOracleQuery. Поместите компонент типаTOracleDataSet в ваш DataModule и назовите его odsTitle. Компонент TOracleQuery позволяет очень гибко, визуально или программно, определить условие отбора записей из нескольких таблиц, а работать с итоговым набором отобранных записей можно обычным способом. Для того, чтобы выполнить написанный вами запрос, нужно установить значение свойства Active в True или вызвать метод Open. На Рисунок 3.2. показан пример установки значения True в свойстве Activeдля OracleDataSet5.
Значение True в свойстве Active
Рисунок 3.2. - Значение True в свойстве Active
В свойстве Sequence Field можно указать последовательность, значение из которой будет автоматически подставляться в указанное поле. На Рисунке 3.3 показан пример.
Работа с Sequence Field
Рисунок 3.3 - Работа с Sequence Field
Вообще, для связи набора данных TOracleDataSet с data-aware компонентами необходимо использовать TDataSource. На Рисунке 3.4. показана схема взаимодействия. Как видно из рисунка, TDataSource является связным звеном между компонентами data-aware и TOracleDataSet. Компонент TDataSourceпозволяет абстрагироваться от конкретной СУБД. Например, если потребуется преобразовать имеющееся приложение в многопользовательский справочник, то достаточно настроить таблицы на другую СУБД с аналогичной схемой БД, способную работать в сети. Элементы управления этого не заметят, потому что будут обращаться к источнику данных, а не к конкретным таблицам. В нашем случае каждый источник данных после размещения в модуле данных связывается с конкретной таблицей с помощью свойства TOracleDataSet.
Схема взаимодействия
Рисунок 3.4. - Схема взаимодействия.
Обратите внимание на следующий факт!!! Для того, чтобы в инспекторе объектов в выпадающих списках свойств были доступны компоненты, находящиеся в другом модуле, необходимо его указать с помощью команды меню File/Use Unit (см. Рисунок 3.5.) или воспользоваться одновременным нажатием клавиш Alt+F11.
Use Unit.
Рисунок 3.5. - Use Unit.
Чтобы просмотреть значения из нашего набора данных , нужно разместить на форме какие-либо компоненты с вкладки "DataControls", например TDBGrid , он отображает данные в виде таблицы. В свойстве DataSource укажите odsTitle.
Для того чтобы получить возможность редактировать, добавлять или удалять записи таблицы, писать программный код не требуется. Достаточно разместить на форме компонент TDBGrid. В его свойстве DataSource следует указать нужный источник данных. Двойным нажатием на Grid вызывается редактор полей, нажмите в нём кнопку "Add All Fields" чтобы добавить все поля из набора данных. Здесь для каждого поля можете указать его ширину, название поля и многое другое. Для поля TITL_ID свойство Visible установите в False чтобы оно не отображалось в таблице. Пример на Рисунке 3.6. 
Редактирование колонок.
Рисунок 3.6. - Редактирование колонок. 
Для упрощения навигации по таблице (что немаловажно, если в ней очень много записей) имеется компонент TOracleNavigator. (см. Рисунок 3.7.) Он обычно размещается на форме под компонентом TDBGrid и привязывается к нему через свойство DataSource. Значение этого свойства должно совпадать со значением такого же свойства связной таблицы. Навигатор позволяет перемещаться по набору записей вперед и назад, переходить к первой и последней записи и выполнять ряд других функций. Функции Навигатора доступны как при щелчках на его кнопках во время работы приложения, так и из программного кода.
 Компонент Navigator
Рисунок 3.7. - Компонент Navigator.
Часто, чтобы отобразить данные из двух таблиц связанных отношением "один ко многим" используют механизм master-detail (главный-подчинённый). В нашем случае такими являются таблицы TITLE и TITLE_COPY. Попробуем сделать так, чтобы при выборе какой-либо кассеты отображались все имеющиеся копии. Действуйте по следующему алгоритму: 

1) Положите в DataModule ещё один TOracleDataSet;
2) В свойстве SQL напишите запрос для выбора всех записей из таблицы TITLE_COPY;
3) В свойстве Master укажите odsTitle;
4) На форму добавьте ТDBGrid и свяжите его с новым набором данных;
5) Протестируйте приложение.

Одной из самых важных функций при работе с базой данных является функция поиска. В Delphi есть множество способов реализации этой задачи. Мы рассмотрим наиболее удобный и самый эффективный - с помощью переменных запроса. Для примера сделаем поиск кассет по названию. Для этого просто добавьте в ваш запрос выбора кассет ещё одно условие: " where t.title like :name ". Здесь :name - это имя переменной, оно может быть любым, но должно начинаться с двоеточия. Затем откройте свойство Variables и нажмите кнопку Scan SQL. Настройте переменную :name в соответствии с Рисунком 3.8. 
Настройка переменной :name
Рисунок 3.8. - Настройка переменной :name.
После настройки переменной, расположите на форме простой TEdit, в который мы будем писать строку поиска, и кнопку для выполнения поиска. Чтобы изменить значение переменной в процессе выполнения программы используйте метод SetVariable. После изменения следует добавить код для переоткрытия набора данных (методы close и open). Проверьте ваш поиск на работоспособность. 

Теперь займемся реализацией такой функции как оформление проката. Для получения положительного результата воспользуйтесь приведенной ниже последовательностью действий: 

1) Создайте новую форму со всеми необходимыми полями;
2) В DataModule добавьте TOracleDataSet, выбирающий данные из таблицы RENTAL;
3) Свяжите его с помощью механизма master-detail c таблицей TITLE_COPY;

Для выбора клиента из справочника удобно использовать компонент типа TDBLookupComboBox (закладка меню Data Controls). В свойстве ListSourse нужно указать DataSourse связанный со справочником клиентов, в ListField - поле, которое будет отображаться (last_name), в KeyField - ключевое поле (member_id).

4) Расположите на форме пару кнопок, "Сохранить" и "Отменить", которые будут вызывать методы Post и Cancel соответственно;
5) На главную форму добавьте кнопку для вызова формы оформления проката (используйте метод ShowModal);
6) Добавьте в код вызов метода Append;
7) Сделайте кнопку доступной (свойство Enabled) только если выбранная кассета имеется в наличии;

Для проверки значения поля STATUS используйте метод FieldByName. Проверку следует осуществлять в момент совершения события OnDataChange компонентаDataSource, связанного с TITLE_COPY. 
В данном разделе были рассмотрены основные этапы создания пользовательского приложения. Дальнейшая реализация каких-либо функций требует индивидуального подхода. В следующем разделе будет рассмотрено множество функций для автоматизации Видео проката. 
Для компонентов редактирования полей "рейтинг" и "категория" (типа TDBComboBox) в свойстве Items нужно указать возможные значения, (NR,R,PG,G) и (CHILD,SCIFI,Comedy,Action) соответственно.

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

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

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года