Язык Power Builder имеет черты сходства со следующими языками программирования – C++, Pascal и FoxPro. Он является типизированным, что означает принадлежность данных к определенной группе – типу.
Замечательной особенностью языка обработки сценариев Power Builder является наличие встроенного SQL. Реализация этого языка в Power Builder основана на спецификации SQL, используемой в СУБД Sybase SQL Anywhere. Это означает наличие таких возможностей, как вызов хранимых процедур, обмен данными с БД через параметры, динамические SQL-запросы и др.
Существенным недостатком Power Builder можно считать отсутствие средств формирования листинга программы, как объединения всех используемых сценариев.
Ключевым понятием, которое необходимо усвоить для работы с Power Builder, является понятие объекта. Power Builder позволяет не только использовать уже существующие объекты среды, но и создавать свои собственные, либо делая их потомками уже существующих, делая их “интеллектуальнее”, либо путем конструирования полностью нового объекта, не имеющего предка:
Пользовательский – объект, не имеющий визуального представления;
Стандартный – объект-потомок от любого стандартного невидимого класса Power Builder (“Транзакция”, “Сообщение”, “Ошибка”, “Объект” и др.);
Пользовательский визуальный – видимый объект, состоящий из любых визуальных стандартных или пользовательских объектов;
Внешний визуальный – объект, содержащий элементы управления, созданные вне Power Builder;
Стандартный визуальный – объект, являющийся потомком от стандартного визуального объекта (“Текст”, “Кнопка”, “Список” и др.) и расширяющий его функциональность. Эти объекты, в основном, используются для переопределения свойств стандартного визуального объекта с целью приспособления его для нужд решаемой задачи;
Окно – объект-потомок от класса “Окно”, который, как и пользовательский визуальный, может содержать любые элементы управления. Отличие между ними состоит в том, что в потомке окна уже реализованы некоторые функции работы с элементами управления, и, кроме того, доступен набор методов стандартного элемента управления “Окно”;
Меню – объект, являющийся потомком от стандартного класса “Меню”;
Структура – объект, состоящий только из данных любого типа;
Функция – объект, являющийся функцией, которая может принимать любое число аргументов, передаваемых по ссылке или по значению, и возвращать значение любого типа;
Окно данных – объект, являющийся главным достоинством Power Builder, благодаря которому, собственно, он и имеет свой круг пользователей и имеет право называться средством разработки приложений клиент-сервер.
Окно данных (DataWindow) – основное средство работы с данными. Работая с ним, пользователь может определять способ представления информации и ее тип. Создание DataWindow состоит из четырех этапов:
а) выбор типа окна данных;
б) выбор источника данных и определение критериев и способа их выборки;
в) моделирование окна данных – работа с макетом DataWindow. При этом оно представляется в виде обычного окна, разделенного на несколько частей в зависимости от его типа и способа группировки данных. В режиме моделирования программист размещает в окне данных элементы управления, в число которых входят столбцы таблиц БД и вычисляемые поля, определяя их свойства и параметры вывода;
г) работа с элементом управления DataWindow, размещаемом в окне или другом визуальном объекте как обычный элемент управления. На этом этапе можно определять обработчики событий окна данных, добавлять к нему пользовательские свойства и методы и т.п.
Приложение – объект, с которого начинается выполнение программ. Все остальные объекты создаются из методов приложения.
Программа предназначена для функционирования под управлением ОС семейства Windows 4.x – Windows NT 4.0, Windows 95, Windows 98. Эти ОС являются общепризнанными стандартами как для настольных систем, так и для небольших локальных сетей как однорангового типа, так и с выделенным сервером (хотя, справедливости ради, следует заметить, что в последнем случае оптимальным решением все же является Novell Netware 4.2 и выше).
Для доступа к БД используется встроенный в вышеперечисленные ОС механизм ODBC (Open Database Connectivity). И хотя в последнее время с ним небезуспешно конкурируют такие средства доступа к БД, как BDE и OLE DB, ODBC по-прежнему применятся при разработках, т.к. он зарекомендовал себя с самой лучшей стороны как с точки зрения удобства работы, так и скорости доступа и обработки данных.
Для работы с БД через ODBC на компьютере должен быть установлена специальная программа – ODBC-драйвер. Его назначение – обработка запросов от ODBC-менеджера, к которому, в свою очередь, обращаются с запросами функции ODBC API.
Т.к. используемая в программе БД создана в СУБД Sybase SQL Anywhere 5.5, то для работы приложения необходим соответствующий драйвер – Sybase SQL Anywhere Database Engine и необходимые ему библиотеки. Разработчиками программы создан инсталляционный пакет, выполняющий установку драйвера и вносящий необходимые изменения в реестр.
Также для работы приложения необходимы некоторые библиотеки Power Builder 7.0 – Power Builder Virtual Machine (файл pbvm70.dll), Power Builder ODBC (pbodb.dll), Power Builder DataWindow Extension (pbdwe.dll). Эти файлы также поставляются вместе с программой в архиве redist.rar.
Объектно-ориентированный анализ задачи
Объектно-ориентированное программирование – это подход к разработке программного обеспечения, основанный на объектах, а не на процедурах. Этот подход позволяет максимизировать принципы модульности и "сокрытия информации". Объектно-ориентированное программирование базируется на связывании или инкапсуляции структур данных и процедуры, которая работает с данными в структуре, с модулем.
Объектно-ориентированные (ОО) системы управления данными привлекают все большее внимание как исследователей и разработчиков, так и потенциальных пользователей из прикладных областей. С одной стороны это объясняется развитием и внедрением в практику объектно-ориентированного подхода (ООП) в целом (ОО программирование и проектирование программных систем, ОО технологии организации пользовательских интерфейсов, распределенные объектные системы и т.д.). Но с другой стороны интуитивно ясно, что максимальный эффект можно получить именно от использования ОО баз данных, преодолев наконец, известный конфликт между структурной и поведенческой частями информационных систем.
Вместе с тем, несмотря на существование ряда коммерческих реализаций ООСУБД, доступных в настоящее время на рынке, уровень технологии таких систем существенно уступает уровню развитых реляционных систем. Это касается и модельных характеристик систем (например, языков запросов) и реализационных аспектов (например, оптимизации запросов).
Часто возникает впечатление, что хотя ограничения существующих систем пытаются объяснять некими принципиальными соображениями (например, что развитые возможности конструирования классов, подкрепленные средствами наследования классов позволяют ограничиться запросами только на одном классе объектов), на самом деле эти ограничения являются следствием недостаточно развитой технологии. Кажется, что в условиях отсутствия признанного лидера в области ООСУБД (каким была, например, компания IBM со своим проектом System R в области РСУБД), единственным путем к выработке такой технологии является продолжающаяся (иногда дублирующая) работа исследователей.
Несложно показать принципиальную возможность построения ненавигационного языка запросов к ООБД на основе усиления теоретико-множественного смысла понятия класс и предложить общую концепцию языка программирования ООБД, который естественно (без потери импеданса) включает в себя язык запросов.
Практически все современные средства разработки используют языки, которые если и не являются чисто объектно-ориентированными, то, по крайней мере, имеют средства для работы с объектами (C++, Pascal, Lisp, Fortran, Basic). Это говорит о том, что сегодня объектно-ориентированное программирование практически вытеснило собой процедурный подход к разработке программ, хотя для решения некоторых специфических задач, как правило, системных, последний все еще применяется.
Основные понятия, использующиеся при описании объектов и связей между ними:
Объект – сущность, являющаяся частью модели реального мира, состоящая из структуры данных и связанных с ней методов ее обработки. Объекты, как правило, образуют иерархию по принципу наследования.
Базовый объект – объект, являющийся “родителем” данного. Это означает, что последний наследует от него его данные и способы их обработки, при необходимости добавляя новые или изменяя существующие.
Дочерний объект – объект, наследующий от базового его свойства и методы.
Свойство – характеристика объекта, определяющая его индивидуальность. Отличия между объектами состоят либо в наличии/отсутствии каких-либо свойств.
Метод – совокупность действий, воздействующих на объект в целом и его свойства в частности.
Сообщение – принятый между объектами способ уведомления о возникновении в них каких-либо событий – ситуаций, следствием которых является измение состояния объекта
Свойства объектно-ориентированного подхода:
- расширяемость – если какой-нибудь объект не устраивает программиста, то он может расширить его, дополнив новыми свойствами или методами, а также изменитьсуществующие методы. При этом не надо модифицировать исходный текст библиотек, в которых хранятся объекты, а потребуется лишь обьявить потомка от существующего объекта, модифицировав его в соответствии с требованиями задачи;
- модульность – объекты представляют собой не изолированные сущности, а иерархическую структуру, отражающую степень их подобия. Кроме того объекты различных типов (например, объекты “окно” и “приложение” имеют средства для взаимодействия между собой. Свойство модульности также позволяет добиться того, что при объединении корректно работающих подпрограмм в единое целое можно быть уверенным в том, что и оно будет работать без ошибок;