1. Lee Quinn
  2. PowerBuilder
  3. Wednesday, 8 April 2020 20:49 PM UTC

Do you have to have the PowerBuilder catalog tables created in Prod databases where just built applications are going to be run?

How do you keep PB from trying to access catalog tables from compiled applications?

 

WARNING: too many parse errors, count=30082 SQL hash=0x384a3478

PARSE ERROR: ospid=72765, error=942 for statement:

2020-03-06T07:33:59.115067-06:00

SELECT PBD_FHGT,PBD_FWGT,PBD_FITL,PBD_FUNL,PBD_FCHR,PBD_FPTC,PBD_FFCE,PBH_FHGT,PBH_FWGT,PBH_FITL,PBH_FUNL,PBH_FCHR,PBH_FPTC,PBH_FFCE,PBL_FHGT,PBL_FWGT,PBL_FITL,PBL_FUNL,PBL_FCHR,PBL_FPTC,PBL_FFCE,PBT_CMNT  FROM SYSTEM.PBCATTBL   WHERE PBT_OWNR = :1 AND PBT_TNAM = :2

Additional information: hd=0x8333de50 phd=0xcd3b1e00 flg=0x100476 cisid=786 sid=786 ciuid=786 uid=786

Accepted Answer
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Thursday, 9 April 2020 08:25 AM UTC
  2. PowerBuilder
  3. # Permalink

What you have to do is add this entry to your PB.INI file. You'll have to distribute a copy of the pb.ini into the folder of the EXE of your distributed application:

 

[Database]

NoCatalog=Yes

 

HIH

Comment
  1. Miguel Leeuwe
  2. Thursday, 9 April 2020 08:28 AM UTC
If that doesn't work (older versions of PB), try setting it to 1 instead of Yes:

NoCatalog=1
  1. Helpful
  1. Miguel Leeuwe
  2. Thursday, 9 April 2020 10:03 AM UTC
by the way, that entry "NoCatalog" is already present in your pb.ini, you don't have to ADD it, just set it to Yes
  1. Helpful
There are no comments made yet.
Lee Quinn Accepted Answer Pending Moderation
  1. Thursday, 9 April 2020 12:52 PM UTC
  2. PowerBuilder
  3. # 1

Thank you for your responses.

Actually I didn't know why we would want the application to run queries against these tables over and over again when not using the IDE.  Seems to me that it would be a lot of overhead and I don't know what we would gain from it.  The Oracle alert log says it had 30,000 parse errors.  I don't know what time frame it took to get to that count.  I assume there is a process that is creating dynamic data windows.

Is there a good reason that we would want to have PB checking these Cat tables after we have built and distributed the application?

 

Comment
  1. Miguel Leeuwe
  2. Thursday, 9 April 2020 13:24 PM UTC
To be honest, anyone correct me if I'm wrong since I'm not totally sure, the catalog tables, normally are only being used, while you are building your application in the PB IDE, but NOT when running the application, unless your program explicitly makes use of them.

Maybe you have defined customized edit styles or formats or other extended attributes which are being used in your datawindows?

You could try to track where these calls are coming from by tracing your SQL and maybe find out where the usage is coming from. If your program DOES use them, then it's no use setting your NoCatalog to Yes.

  1. Helpful
  1. Miguel Leeuwe
  2. Thursday, 9 April 2020 13:25 PM UTC
Maybe they're also being used to automatically get descriptions for columns from those tables?
  1. Helpful
  1. Bruce Armstrong
  2. Thursday, 9 April 2020 15:01 PM UTC
The only time I've ever used the catalog tables in production is when we were creating datawindows dynamically. You can store preferred edit styles and other such information in the catalog tables and then you create datawindows it uses that information as default. The vast majority of systems though I've never deployed those tables.
  1. Helpful
There are no comments made yet.
Olan Knight Accepted Answer Pending Moderation
  1. Wednesday, 8 April 2020 21:18 PM UTC
  2. PowerBuilder
  3. # 2

Dear Lee -

   As a rule, we try to have our production databases be structured exactly the same as our development databases. Everything is the same except for the data itself.

   This means that testing one in the DEC database has a far better chance of accurately reflecting what will happen in the PROD database. It also means that IF REQUIRED, we can go into the PROD database with the IDE and debug or make any changes we need.


Later -

Olan

Comment
  1. Lee Quinn
  2. Wednesday, 8 April 2020 21:30 PM UTC
We deliver our EXE to clients so we don't want to have those tables in their databases. We don't want PowerBuilder generating statements to access those tables.
  1. Helpful
  1. Olan Knight
  2. Wednesday, 8 April 2020 21:42 PM UTC
Simply preventing a PowerBuilde IDE from accessing the data in a database strikes me as much effort for minimal rewards, since you can still access data from any database using the right tool if you have a valid USER_ID and PWD.



However, if that's what your requirements demand then that's a goal you need to achieve.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.