64-bit windows applications

Introduction to PowerBuilder

PowerBuilder

PowerBuilder is a Sybase product.

It is an enterprise tool for developing:

* Client/Server Applications
* Multi-Tier Applications
* Web Applications

Client/Server Applications

A client/server application may include:

* User Interface
* Application Processing Logic

User Interface

A user interface consists of windows, menus and window controls.

It is used by users to interact directly with the application.

Application Processing Logic

Application processing logic consists of:

* Event Scripts
* Function Scripts

Components

Components are modules containing application processing logic.

They are deployed to a server in a multi-tier application.

They may be deployed as:

* EAServer Components
* COM+ Components

Event Driven

PowerBuilder applications are event driven.

The user controls what happens by actions taken.

Scripts specify processing that occurs when events are triggered.

PowerBuilder objects and components have predefined events.

You can also define your own events.

PowerScript

PowerScript is the PowerBuilder language used to write scripts.

Scripts consist of:

* PowerScript Commands
* PowerScript Functions
* PowerScript Functions

Scripts perform processing in response to events.

Objects

An object is a self-contained module.

Objects are the basic building blocks of a PowerBuilder application.

Windows, menus and components are all examples of objects.

Object Characteristics and Behaviour

An object has:

* Properties
* Events
* Functions

Object Oriented Programming

PowerBuilder supports object oriented programming techniques:

* Inheritance
* Encapsulation
* Polymorphism

These techniques make objects:

* Reusable
* Extensible
* Powerful

Editions of PowerBuilder

PowerBuilder is available in the following editions:

* PowerBuilder DeskTop

A development environment for individuals for building
applications using desktop databases.

* PowerBuilder Professional

A development environment for small teams building
applications based on ODBC databases.

* PowerBuilder Enterprise

A complete development environment for deployment of
client/server, multi-tier and web applications.

Available Technologies

The following technologies are available in all editions:

* DataWindow Technology
* PowerBuilder Window PlugIns
* PowerBuilder Window ActiveX
* DataWindow Web Control for ActiveX

Multi-Tier Applications

Multi-tier applications run in adistributed component environment.

A distributed environment allows you to:

* Centralize business logic on servers
* Partition application logic between client and server
* Build scalable applications
* Build applications that are easy to maintain

Database Connectivity

PowerBuilder allows for easy access to corporate information stored in a variety of databases.

Data is accessible through:

* PowerBuilder OBDC Interface
* JDBC Interface
* Middle Tier Data Access Server
* Native Connection

Advertisement


This entry was posted on December 9, 2006 at 12:39 am and is filed under Software Development. You can follow any responses to this entry through the RSS 2.0 feed.
You can , or trackback from your own site.

Инструменты PowerBuilder

  • Appeon PowerServer Mobile — разработка собственных мобильных приложений с помощью PowerBuilder, который работает на iOS (iPad и iPhone) и Android (планшеты и телефоны) с поддержкой API мобильных устройств и подключаемых модулей Apache Cordova.
  • Appeon PowerServer Web — развертывает существующие или новые проекты PowerBuilder как веб-приложения, которые изначально работают на серверах .NET или Java с поддержкой большинства функций PowerBuilder.
  • Visual Expert для PowerBuilder — Visual Expert помогает делиться знаниями о ваших приложениях. Он также автоматизирует анализ воздействия и проверяет качество кода.
  • Включить многоязычность — включение позволяет быстро и легко сделать приложения PowerBuilder многоязычными. Используя Enable, разработчикам достаточно внести несколько небольших изменений в исходный код PowerBuilder, чтобы перейти от одноязычного к многоязычному.
  • ProDiff для PowerBuilder — ProDiff предназначен для выделения различий между версиями исходного кода разработки PowerBuilder.
  • Visual Guard для PowerBuilder — Visual Guard — это инструмент контроля доступа и разрешений на уровне приложений. Это помогает централизовать просмотр и контроль пользователей и их прав в приложениях PowerBuilder.
  • STD Framework для PowerBuilder — A Свободный объектно-ориентированная среда разработки для PowerBuilder Classic, Web Services, Appeon PowerServer Web и Mobile.
  • Ultimate Suite for PB — набор элементов управления, написанный на PowerScript, который модернизирует графический интерфейс приложений PowerBuilder; Ultimate Suite for PB придает приложениям современный вид и делает их более удобными для пользователя.
  • AscentialTest — автоматическое тестирование для PowerBuilder, Интернета и других. Глубокая интеграция с API PowerBuilder VM позволяет AT видеть и понимать объекты PB.
  • PowerGen — Автоматическая сборка и восстановление приложений PowerBuilder. Поддерживает сборку непосредственно из системы контроля версий.

Применение

PowerBuilder используется в основном для построения бизнеса CRUD Приложения.

Хотя новые программные продукты редко создаются с помощью PowerBuilder, многие ERP-продукты клиент-сервер и бизнес-приложения, созданные в конце 1980-х — начале 2000-х с помощью PowerBuilder, по-прежнему обеспечивают основные функции баз данных для крупных предприятий в правительстве., высшее образование,, производство, страхование, банковское дело, энергетика и телекоммуникации.

Вакансии для разработчиков PowerBuilder легко доступны, но часто связаны с поддержкой существующих приложений.

Migration to PowerBuilder .NET

The WPF Window Application wizard in PowerBuilder .NET provides an option for converting a standard PowerBuilder Classic client/server or a Windows Forms target to a WPF Window Application target. The .NET Assembly wizard in PowerBuilder .NET provides an option to convert a PowerBuilder Classic .NET Assembly target.

After you select these conversion options and click Finish, the wizards automatically migrate the PowerBuilder Classic targets you select. However, you may still need to manually refactor some applications after you convert them.

This table lists some of the features that require special attention after you migrate applications from PowerBuilder Classic. Topic references in the table are to the PowerBuilder .NET Features Guide.

Feature Effect of Migration
Accelerator characters Ampersand (&) changed to underscore (_). See Accelerator Characters in Control Labels.
Conditionalized (preprocessor) code blocks Invalid code blocks for PowerBuilder .NET are maintained, but ignored. See Conditional Compilation in PowerBuilder .NET Targets.
Control handles Controls nested in windows do not have their own handles. See Modified and Unsupported Features in PowerBuilder .NET .
Dashes in identifiers Dashes are replaced with a string you can select in the target wizard. See Coding Restrictions.
Event sequence May require manual refactoring. See Modified and Unsupported Features in PowerBuilder .NET .
GroupBox controls Controls that are inside a GroupBox belong to the GroupBox, not to the container of the GroupBox. SeeSemantic Differences.
Large application migration May cause OutOfMemory error. Turn on 3G switch to avoid this error. See Memory Tuning for Large Applications.
Menu and toolbar styles Maintained from PowerBuilder Classic. If you migrate PowerBuilder applications earlier than 11.0, menus and toolbars use traditional styles. See Selecting a Toolbar Styleand Menu Styles in PowerBuilder .NET.
Non-TrueType fonts Visible at design time, but replaced at runtime. See Modified and Unsupported Features in PowerBuilder .NET .
Pipeline and Query objects Imported, but ignored at runtime. See Modified and Unsupported Features in PowerBuilder .NET .
Resource files Resource directories that you select in the wizard are copied relative to the new target path, based on the relative path to the original target. See Adding Resources to a Target andProject Painter User Interface.
Skins Default skins are attributed to migrated applications. SeeSkin Selection for Applications and Controls,

The WPF application includes migration options for applications with dashes in identifiers and with right-to-left formatting. If you click Finish before making a migration option selection, the wizard migrates the application using default settings for these options.

PowerBuilder Source Files

Although you can open a PowerBuilder application in the PowerBuilder IDE, select a library, an object within the library and right-click
Edit Source to modify the code, it is more typical to export all PowerBuilder objects and run a tool for automated conversion of
SQL statements from Oracle to SQL Server syntax.

Working with source files are especially useful during the testing phase, when you can use text editors and merge utilities
to find and validate all changes made to the application.

A PowerBuilder library (.pbl file) contains PowerBuilder objects that exported to the following files:

  • .sra — Application Object (The entry point to the application)
  • .srd — DataWindow Object (Retrieves, represents and modifies data in the database)
  • .srw — Window Object
  • .sru — User Object
  • .srm — Menu Object (List of commands and handlers)
  • .srf — Function Object
  • .srs — Structure Object (Structure definition)
  • .srq — Query Object

For more information how to export a PowerBuilder library to source files, see How Export a Library.

Технологии распределенных вычислений

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

С начала 90-х годов XX века известна такая технология реализации программных
приложений как архитектура «клиент-сервер». Ее основная особенность
состоит в том, что приложение делится на два уровня — представление данных
(клиент) и хранение данных (сервер БД). Обработка информации происходит на
клиенте, на сервер посылаются запросы и обрабатываются полученные в ответ на
них данные. Такой подход оправдывает себя при создании небольших, относительно
несложных систем. Но по мере развития приложений, по мере роста объемов данных
и ужесточения требований к скорости их обработки, становятся видны недостатки
двухуровневой архитектуры. На смену ей приходит новая архитектура — трехуровневая.
Она характеризуется тем, что деловая логика системы выносится на отдельный
уровень и обособляется от пользовательского интерфейса и хранения данных. В
трехуровневой модели выделяются следующие уровни:

  • уровень представления данных (клиентский компьютер);
  • уровень деловой логики (сервер приложений);
  • уровень хранения данных (сервер БД).

Рисунок 1. Трехуровневая архитектура

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

Актуальность трехуровневой архитектуры обусловлена следующими причинами :

  • Поддержка распределенных архитектур и Интернет
    Построение Интернет-систем невозможно без выноса деловой логики на средний
    уровень. Понятие «тонкого клиента» подразумевает использование
    серверов приложений, так как сервер БД не предназначен для обработки http-обращений,
    а HTML-клиент с броузером не может обсчитывать данные. В отличие от клиент-серверной
    трехуровневая модель позволяет обеспечить доступ к данным клиентам самых
    различных типов — Windows-клиент через ЛВС, HTML-клиент через Интернет,
    наладонный компьютер (PDA) через беспроводный доступ.
  • Снижение затрат
    Отделение обработки данных от пользовательского интерфейса позволяет изменять
    деловую логику приложения не затрагивая клиента. При создании новой версии
    бизнес-логики нет необходимости обновлять все клиентские места — необходимые
    изменения осуществляются на одном-единственном сервере приложений. За
    счет этого удается снизить как финансовые, так и временные затраты на
    обслуживание
    используемых систем.
  • Масштабируемость
    При повышении требований к быстродействию возможен перенос деловой логики
    системы на более производительную платформу, что обеспечивается кроссплатформенной
    совместимостью сервера приложений. При необходимости наращивания вычислительных
    ресурсов становится возможным приобрести только один мощный компьютер
    для сервера
    приложений, а не много быстродействующих клиентских станций.
  • Отказоустойчивость
    Технологии, лежащие в основе сервера приложений, позволяют строить такие
    отказоустойчивые системы, которые могут работать даже в случае выхода
    из строя одного или нескольких
    компьютеров. При этом используется кластеризация — объединение в
    единую логическую группу нескольких серверов приложений. Для клиентов
    такая
    группа выглядит
    как единый сервер, и в случае выхода из строя какого-либо из серверов
    кластера нагрузка динамически перераспределяется между оставшимися
    серверами.

PowerBuilder Project Files

Usually a PowerBuilder application contains the following files in the application directory:

.pbl — Library Files
A PowerBuilder libary file is a binary file containing the application code (PowerBuilder objects).

.pbt — Target File
An application target is a text file containing the list of libraries (.pbl files) in the application, the library containing the application object (the entry point to the application).

.pbw — Workspace File
A workspace file is a text file containing references to one or more targets, and used in PowerBuilder IDE to open the project.

Additionally, the application directory can contain images, various configuration and data files (.ini, .xml, .txt etc.)

Working With Databases in PowerBuilder

Before converting a PowerBuilder application from Oracle to SQL Server, you should understand how PowerBuilder accesses
databases, and what statements belong to the PowerBuilder language, and do not require conversion.

Embedded SQL

PowerBuilder allows you to embed SQL statements to PowerScript code, so they look as usual statements:

PowerBuilder:

  Date ld_today
 
  // Selecting into a local variable
  SELECT SYSDATE INTO :ld_today FROM dual USING sqlca
 
  // Insert using the value of a local variable
  INSERT INTO log VALUES (:ld_today) USING sqlca

This example includes a local variable declaration, and an embedded SQL statement: SELECT SYSDATE FROM dual.

Note that although Oracle PL/SQL language supports INTO clause in the SELECT statement, in this example, INTO is a PowerBuilder
clause, not related to Oracle PL/SQL, and specifies to retrieve the value to the ld_today local variable.

USING sqlca clause also belongs to PowerBuilder and links the statement with a database connection (transaction context).

Embedded SQL Statements

Embedded SQL statements that belong to the PowerBuilder language:

  • SELECT select_list INTO :var1, … FROM …
  • DECLARE cursor_name CURSOR FOR select_statement USING sqlca

  • OPEN cursor_name

  • FETCH NEXT cursor_name INTO :var1, …

  • CLOSE cursor_name

Again, you can see that most statements look like Oracle PL/SQL statements, but they are PowerBuilder statements
and do not require conversion when you migrate to SQL Server.

Additionally, PowerBuilder application usually contain the following code to check for database errors:

  • SQLCA.sqlcode = 0 — Successful execution
  • SQLCA.sqlcode <> 0 — Error

A fragment of embedded SQL:

PowerBuilder:

  DECLARE cur_countries CURSOR FOR 
     SELECT name FROM countries 
    USING sqlca;
 
  OPEN cur_countries;
  FETCH NEXT cur_countries INTO :ls_name;
 
  IF sqlca.sqlcode <> 0 THEN							
  	/* Error handling */
  END IF
 
  CLOSE cur_countries;

Dynamic SQL

Unlike an embedded SQL which is known at the compile time, a dynamic SQL statement is known at the run-time. PowerBuilder
provides the following statement to work with dynamic SQL:

  • DECLARE cursor_name DYNAMIC CURSOR FOR sqlca
  • PREPARE SQLSA FROM “SQL_statement” or :var
  • OPEN DYNAMIC cursor_name

A fragment of dynamic SQL:

PowerBuilder:

  // Declare a cursor
  DECLARE cur_countries DYNAMIC CURSOR FOR sqlca;
 
  PREPARE sqlca FROM "SELECT name FROM countries";
 
  // Open the cursor and fetch a row
  OPEN DYNAMIC cur_countries;
  FETCH NEXT cur_countries INTO :ls_name;
 
  IF sqlca.sqlcode <> 0 THEN							
  	// Error handling 
  END IF
 
  CLOSE cur_countries;

Transaction Control Statements

Besides data manipulation SQL statements, a PowerBuilder application also usually contains transaction control statements:

  • COMMIT USING sqlca

  • ROLLBACK USING sqlca

История

Первая версия PowerBuilder была выпущена PowerSoft в июле 1991 г.

В декабре 2013 года SAP объявила о выпуске новой версии под номером 15 и выпустила бета-версию. Ключевые функции включают поддержку .NET Framework v4.5, SQL Server 2012, Oracle 12, Windows 8, OData и Dockable Windows. Позднее SAP выпустила его как версию 12.6.

31 мая 2019 года компания Appeon запустила PowerBuilder 2019. Этот выпуск поддерживает C # развитие. Он предоставляет новую IDE C #, объекты доступа к данным .NET, решение миграции C #, клиент веб-API и темы пользовательского интерфейса.

3 апреля 2020 года компания Appeon запустила PowerBuilder 2019 R2. Этот выпуск включает первый в мире преобразователь кода PowerScript в C #, который может автоматически переносить 80-95% бизнес-логики PowerBuilder и DataWindows на C #. Также теперь поддерживается взаимодействие между языками программирования PowerScript и .NET. Многие существующие функции также были улучшены.

особенности

PowerBuilder — это объектно-ориентированного программирования язык. Почти все визуальные и невизуальные объекты поддерживают наследство, полиморфизм, и инкапсуляция. Программист может использовать общий код фреймворк такие как Базовые классы PowerBuilder, также известный как PFC, для наследования объектов и использования уже существующего кода.

DataWindow — ключевой компонент (и аргумент) PowerBuilder. DataWindow предлагает визуальное SQL художник, который поддерживает , и операции подзапроса. Он может преобразовывать SQL в визуальное представление и обратно, поэтому при желании разработчик может использовать собственный SQL. Обновления DataWindow выполняются автоматически — он создает правильный SQL во время выполнения на основе СУБД, к которой в настоящее время подключен пользователь. Эта функция упрощает работу разработчиков, не имеющих опыта работы с SQL.

DataWindow также имеет встроенную возможность как извлекать данные, так и обновлять их через хранимые процедуры или REST Web API, а также импортировать / экспортировать данные JSON. Объект RESTClient, представленный в PowerBuilder 2017, упрощает соединение DataWindow с REST Web API и требует минимального кодирования.

Интерфейсы СУБД

PowerBuilder предлагает собственные интерфейсы для всех основных баз данных, а также ODBC и OLE-DB, в версии Enterprise. Существует множество вариантов подключения, позволяющих отслеживать и настраивать производительность, например:

  1. Комплексная безопасность
  2. Отслеживание всего SQL
  3. Уровень изоляции
  4. Диалог истечения срока действия пароля
  5. Фактор блокировки
  6. Количество операторов SQL для кеширования
  7. Использовать пул соединений
  8. Безопасность потоков
  9. Отслеживание вызовов API ODBC

Благодаря информации о схеме базы данных (например, информации о первичном ключе), которая хранится в словаре данных PowerBuilder, код, необходимый для реализации отображения и просмотра данных, значительно упрощается, поскольку информация из словаря позволяет генерировать соответствующий SQL «за кулисами».

PowerBuilder поддерживает следующие способы взаимодействия с базой данных:

DataWindow: это самый простой подход, основанный на автоматически сгенерированном SQL.

«Встроенный SQL»
Встроенный SQL поддерживает SELECT, INSERT, UPDATE, DELETE и курсоры. Этот параметр используется, когда разработчик желает большего контроля, чем доступно с параметром DataWindow. Пример:
 ОБНОВИТЬ my_employee НАБОР СТАТУС = 'А'; ЕСЛИ sqlca.sqlcode<> ТОГДА ...
«Динамический SQL»
Это форма параметризованного SQL, где пользователь строит строку, которая может содержать переменные связывания. Динамический SQL также может использоваться для создания курсоров.

Интеграция со сторонним ПО

PowerBuilder поддерживает ActiveX и элементы управления OCX, видимые и невидимые. Он также может использовать OLE Automation в качестве клиента. Однако PowerBuilder поддерживает только позднее связывание, но не раннее связывание. Поэтому при использовании OLE Automation раскрывающийся список возможных действий не предусмотрен. PowerBuilder также может действовать как DDE клиент или сервер, обеспечивая дополнительный механизм взаимодействия с другими приложениями.

PowerBuilder может выполнять вызовы Windows и сторонних API и, в целом, хорошо работает со сторонними библиотеками в файлах DLL, однако напрямую не поддерживает функции обратного вызова.

Компиляция и отладка

PowerBuilder предлагает переключатель времени выполнения «/ pbdebug» (или варианты: «-pbdebug», «-pbd», «/ debug», «-debug», «-deb»), который создает файл журнала. Это может помочь отследить ошибку «в поле», так как пользователь просто отправляет этот файл журнала разработчику по электронной почте. У него есть еще одна функция, которая может записывать все операторы SQL в файл. Он также имеет встроенное профилирование производительности, встроенный отладчик, контекстно-зависимую справку и активную группу новостей для поддержки.

Приложения PowerBuilder обычно компилируются в p-код, который затем интерпретируется средой выполнения PowerBuilder. Хотя его можно скомпилировать в машинный код (называемый c-кодом), типичное бизнес-приложение не работает намного быстрее. Однако приложения, которые выполняют необычно большое количество вычислений с интенсивным использованием ЦП, вероятно, выиграют до 4000 раз быстрее от компиляции в машинный код. Основная причина, по которой не использовалась компиляция в машинный код, — это огромное количество ошибок в PowerBuilder, особенно при генерации машинного кода.

Инструменты разработки трехуровневых систем — подход Sybase

Используя свой многолетний опыт в области выпуска инструментов построения корпоративных приложений, корпорация Sybase предлагает законченное решение для реализации систем в трехуровневых архитектурах. В качестве сервера приложений предлагается Enterprise Application Server (EAServer) — высокопроизводительная среда для исполнения компонентов, реализующих деловую логику информационной системы. Отличительной чертой EAServer является открытость — он поддерживает широкий перечень различных типов компонентов, таких как Java, C/C++, COM/ActiveX, PowerBuilder Non-Visual User Object (PB NVUO). Впечатляет набор операционных систем, поддерживаемых EAServer — это как все варианты 32-разрядных ОС семейства Windows, так и наиболее известные UNIX-платформы (Sun Solaris, Hewlett Packard HP-UX, IBM AIX, а также LINUX). Более подробную информацию о возможностях EAServer можно найти в статье .

В качестве средства разработки приложений для трехуровневой архитектуры предлагается PowerBuilder — инструмент, который без преувеличения можно назвать классикой систем, предназначенных для работы с SQL СУБД. Начиная с первых версий PowerBuilder был средством разработки клиент-серверных приложений, и средством достаточно успешным. Основой его успеха стала удачная технология работы с данными через механизм DataWindow, а также открытость и масштабируемость. Мало какой иной инструмент позволяет работать с таким широким спектром источников данных — от DBF-файлов до корпоративных БД масштаба Sybase SQL Server или Oracle.

Первые возможности для разработки трехуровневых приложений появились в PowerBuilder в середине 90-х годов. С течением времени эта функциональность развивалась и наращивалась, и текущая версия продукта — PowerBuilder 8.0 — предлагает широкие возможности для разработки многоуровневых информационных систем. Одна и та же деловая логика, реализованная средствами PowerBuilder и функционирующая в виде компонентов на EAServer, доступна для использования в любых типах архитектур — как клиент-серверных, так и распределенных, а также и в Интернет. Такие технологии как DataWindow и PowerScript могут использоваться как при разработке обычных Windows-программ, так и при создании бизнес-компонентов, предназначенных для работы в среде EAServer. Более того, предлагаются специальные методики переноса двухуровневых приложений, написанных в прежние годы на PowerBuilder, в трехуровневую архитектуру. Деловая логика таких приложений выносится из клиентских программ и реализуется в виде компонентов для EAServer. Эти компоненты развертываются на сервере приложений, и клиентские программы настраиваются для вызова их методов. За счет того, что в EAServer реализована полная функциональность PBVM (PowerBuilder Virtual Machine), достигается возможность исполнения написанного на PowerBuilder кода на сервере приложений без каких-либо ограничений. Ни один из других представленных на рынке серверов приложений не предлагает разработчикам на PowerBuilder такой возможности. Необходимо отметить, что связка PowerBuilder + EAServer является в настоящее время полнофункциональным и хорошо отлаженным решением, предлагаемым компанией Sybase для реализации многоуровневых информационных систем.

Migration Scope

When you convert a PowerBuilder application from Oracle to SQL Server, you have to look at the following
PowerBuilder objects:

  • DataWindow Objects
  • Window Objects
  • User Objects
  • Function Objects

Converting DataWindow Objects

A DataWindow object (.srd file) contains a query to retrieve the data. In many cases, this is a PBSELECT clause that does not
require conversion as it is an internal query representation in PowerBuilder that does not contain database specific clauses:

For example, the following PBSELECT from a .srd file specifies to select id and name columns from countries table:

  -- This PBSELECT is equivalent to SQL SELECT id, name FROM countries
  retrieve="PBSELECT(TABLE(NAME=~"countries~") COLUMN(NAME=~"countries.id~")
       COLUMN(NAME=~"countries.name~"))"

At the same time, instead of PBSELECT, a DataWindow object can contain a SQL SELECT statement to define the data. This
SQL statement can use Oracle native syntax and may require conversion when you migrate the database to SQL Server:

For example, the following SQL SELECT statement contains Oracle SYSDATE function that needs to be replaced with GETDATE()
or other equivalent function in SQL Server:

  -- Fragment of a .srd file using SQL SELECT to define the data
  retrieve="SELECT SYSDATE, id, name FROM countries"

Converting Window Objects

A Window object (.srw file) consists of event handlers that can contain embedded SQL statements to retrieve and modify
the data as well as to manage transactions:

PowerBuilder for Oracle:

  DATE ld_date
 
  SELECT SYSDATE INTO :ld_date FROM dual USING sqlca;
 
  IF sqlca.sqlcode <> 0 THEN
	ROLLBACK USING sqlca;
	MessageBox("Demo1", "Error raised")
	return -1
  ELSE
	COMMIT USING sqlca;
  END IF

Some SQL statements and clauses (INTO, USING sqlca, sqlca.sqlcode, ROLLBACK and COMMIT) as well as data types (DATE) are part of the PowerBuilder language
and do not require conversion, while others (SYSDATE, dual) belong to the Oracle syntax and require
conversion to work with SQL Server.

Dynamic SQL

In addition to embedded SQL, a Window object can contain a dynamic SQL (a SQL statement in a string expression). It is typical
for a PowerBuilder program to dynamically build SQL statements (add filters, sorting etc.):

  IF TRIM(created_column.text) <> "" THEN
	ls_Where = ls_Where + " AND"
	ls_Where = ls_Where + " SYSDATE - " + created_column.text + " <= created"
  END IF

Converting User Objects

A User object (.sru file) is similar to the concept of a class in object-oriented languages such Java, C#, C++ etc. It
contains properties and methods that you can reuse in different parts of an application, or even in different applications.

Similar to Window objects, a User object can contain embedded and dynamic SQL statements that may require conversion when
you migrate the database from Oracle to SQL Server.

Критика

Расширяемость языка была довольно ограниченной для более старых версий PowerBuilder. Технологии, обеспечивающие преодоление этого (например, собственный интерфейс PowerBuilder или PBNI), довольно сложны. Разработать решение, включающее внешние C ++ код может потребовать не только компетентного разработчика C ++, но и эксперта по PowerBuilder, который поможет разработчику разобраться в бесчисленных тонкостях языка и PowerBuilder. Виртуальная машина.

Наследование и объектно-ориентированные функции ограничены некоторыми типами объектов (Windows, Userobjects и Menus). В частности, невозможно наследовать от DataWindow. Пользователь PowerBuilder не может одновременно открывать потомок и родительский элемент в рисовальщике, хотя он может видеть код всех предков, работая с потомком.

Чтобы ответить на эту критику, Appeon разработал новую дорожную карту для PowerBuilder, которую он открыто публикует на веб-сайте Appeon. Сам (классический) язык PowerScript, который по-прежнему доступен по соображениям совместимости, известен среди разработчиков как «язык, построенный на основе DataWindow», при этом PowerBuilder является «средой разработки, построенной на основе DataWindow». C # разработка, сосредоточенная на новом .NET DataWindow с автоматической миграцией существующих DataWindows, была представлена ​​в PowerBuilder 2019.

Заключение

На современном этапе использования информационных технологий распределенные вычисления являются одним из наиболее перспективных направлений их развития. Рассмотренное средство разработки PowerBuilder является полнофункциональным инструментом для быстрого и эффективного создания распределенных трехуровневых приложений. Если Вас заинтересовали описанные в данной статье программные средства, демонстрационные версии PowerBuilder и EAServer вы можете скачать из Интернет по адресам http://www.sybase.com/pb8_eval или http://www.sybase.ru/download/prodreview/powerbuilder.htm

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

  • Подробней о продуктах компании Sybase

  • Приобрести продукты компании Sybase в электронном магазине ITShop.ru

  • Учебные курсы по продуктам компании Sybase

  • Обратиться в «Интерфейс Ltd.» за дополнительной информацией/по вопросу приобретения

Главная страница

Программные продукты

Статьи

СУБД и хранилища данных,
Sybase

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: