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.

 

Details:
In our Oracle schemas, we have the PB Catalog table owner specified as the superuser CHADBA.


Once created in Oracle, the catalog tables are in the CHADBA schema.


The PB IDE opens up smoothly with NO prompt to "Create the PowerBuilder catalog tables."

~~~~~~~~~~~

We are in the process of migrating to PostgreSQL (PG).
 - PG is case sensitive, and in our case all table and columns names are in lower case.
 - Note: Users can migrate to an UPPER or a LOWER case copy. Choose the LOWER case to eliminate a variety of
            issues.

Our PG development database also has the PB catalog tables defined in the chadba schema.
We set up the PG database mostly in the same way we set up the Oracle databases; chadba is in lowercase:






Defined in this manner, the IDE opens up smoothly and does not give you the "PB catalog tables not available" message.

- - - - - - - - - - -

If the setup is NOT done correctly, then when I open PB2019R3 and the connection is to my dev12c_PG database, PowerBuilder creates the complete set of catalog tables in the public schema, but does not populate either of the new the EDT or FMT catalog tables.

Thus when I get into the DB Painter and "select * from pbcatfmt;" the result set is empty. Why? Because the new set of tables defined in "public" are overriding the set of tables previously defined in "chadba".

I have to manually delete the public.pbcat* tables ....

drop table public.pbcatcol;
drop table public.pbcattbl;
drop table public.pbcatfmt;
drop table public.pbcatvld;
drop table public.pbcatedt;
commit;

.... before I have access to the FMT and EDT data again:

-- pbcattbl, pbcatcol, pbcatfmt, pbcatvld, pbcatedt
//drop table public.pbcatcol;
//drop table public.pbcattbl;
//drop table public.pbcatfmt;
//drop table public.pbcatvld;
//drop table public.pbcatedt;
//commit;

select * from pbcatfmt;

 

 

Comments (0)
There are no comments posted here yet

Find Articles by Tag

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