Tech Articles


Defining a PostgreSQL Database Profile in PB2019R3


PB2019R3
PostgreSQL v12 database


Summary:
   Ensure that the database properties are defined correctly for the PostgreSQL database in the DB Painter.

   If those properties are not defined correctly, the PB2019R3 IDE automatically creates the PB Catalog tables in the "public" schema every time it connects to the PostgreSQL (PG) database even if the catalog tables are already defined in the named "PowerBuilder Catalog Table Owner" schema.

 

Read more

Call SOAP Web Services Using HTTPClient Object


Since PowerBuilder 2017 R2, we have a new HTTPClient object, which is a base object for sending HTTP requests and receiving HTTP responses from a resource identified by a URI. Compared to the Inet object, the HTTPClient object is easier to use and supports more methods (Get/Post/Put/Delete) and more SSL protocols (TLS 1.0, TLS 1.1, TLS 1.2, SSL 2.0, and SSL 3.0).

Among other things, the HTTPClient can be also used to consume SOAP Web services. This is particularly useful as the Web Service Proxy has many limitations and defects calling SOAP Web services such as not supporting TLS 1.2. This article is to show how you can use the new HTTPClient to call your existing SOAP Web services instead. 

Read more

Generating a QR code using QRCoder


QRCoder is an open source .Net assembly for creating QR Codes.  What we're going to do is wrap that with an assembly in SnapDevelop we can use from PowerBuilder.  First thing we need to do is create a .Net standard Class Library project in SnapDevelop.

Read more

Git for a single developer


Let's say you're an independent contractor or a one person shop.  You want to take advantage of the source control features of Git, but you don't want to have to set up a server just for one developer.  Fortunately, you don't have to.  We're going to walk through the steps of connecting PowerBuilder to a local directory based repository.

Read more

Detecting a smart card insertion/removal from PowerBuilder


This is a follow up article to an earlier article I wrote called Communication with a smart card from PowerBuilder. In that article I showed how to interact with a smart card once it was inserted in the reader.  In this article, we're going to look at how we can monitor the card reader to determine when the user inserts or removes a smart card from it.

Read more

Spell checking in the new PowerBuilder 2017 Rich Text Edit Control


The original Rich Text Editing control shipped with PowerBuilder was based on an OEM of a popular third party control at the time called HighEdit. By the time 10.5 came out though, that control was quite dated and no longer supported by the vendor. As a result, in 2006 Sybase replaced that control with an OEM of another popular third party control called TX Text Control. There are licensing issues with that control though.  So with the release of PowerBuilder 2017 Appeon updated the control again, replacing the OEM of the TX Text Control with an OEM of the TE Edit Control. Note that if you encounter regressions with the new control you can switch back to the TX Text Control through a new RichTextEdit option in the Additional Properties dialog for the application object.  If you do however, you will have to obtain your own license of TX Text Control.

 

Read more

"Haunted" Apps - How to Avoid Ghost (Unresponsive) Windows


Are any of the windows in your PowerBuilder applications “haunted” by ghosts?

In the Windows operating system, the term “ghosting” is used to describe how the Desktop Window Manager visually intervenes on a user’s behalf whenever Windows believes the active, or "top-level" application window has become unresponsive. This article describes how Windows determines if a window should be ghosted and how the appearance of a window changes when it becomes ghosted. The article will also examine the common causes of an unresponsive PowerBuilder window and discuss some options for detecting, recovering from and even preventing windows with long-running processes from being ghosted.

Let’s start where most things begin… at the beginning – with an overview of the role of messages and message queues in an event-driven operating system.

Read more

Find Articles by Tag

Event CoderObject UI Database Object Database Painter Event Handler SVN Array Source Code DataWindow JSON Web Service Proxy Android Migration Database Table Data Expression Event Handling iOS Visual Studio License SnapDevelop Stored Procedure Variable Data Git Windows 10 Icons .NET Assembly DLL PFC GhostScript RichTextEdit Control Import JSON Oracle SqlModelMapper Azure PostgreSQL ODBC driver TLS/SSL Automated Testing CI/CD UI Themes REST COM Jenkins SqlExecutor Database Connection Linux OS RibbonBar Interface PowerBuilder (Appeon) Web API SOAP Debug Repository DragDrop Text Export Authentication OAuth BLOB PowerScript (PS) PowerBuilder Compiler Import TreeView Filter Authorization PowerServer Mobile Source Control CrypterObject PowerBuilder Charts JSON SQL SnapObjects Performance C# Testing WebBrowser InfoMaker Branch & Merge DataWindow .NET Std Framework DevOps Export JSON Outlook MessageBox .NET DataStore Platform 64-bit Database Table Schema PBNI PDFlib PowerServer Web ActiveX RibbonBar Builder JSONGenerator NativePDF External Functions PBDOM IDE Installation Trial SDK Mobile Deployment Error RESTClient Database Profile OAuth 2.0 Bug Messagging Script XML Debugger Encryption Model SQL Server Debugging Graph Design Transaction API Elevate Conference WinAPI File Window Icon TortoiseGit Application TFS Database OLE Database Table JSONParser Configuration Resize Validation Syntax OrcaScript ODBC PDF Service Class Sort Menu PBVM DataType UI Modernization PostgreSQL Excel Open Source Windows OS 32-bit HTTPClient Encoding