Declare procedure calls different between 10.5 and 2017



I'm comparing 10.5 and 2017, trying to get the backing to move to 2017. I've come across an interesting issue that has me stumped.

Basically we have the following code

DECLARE OKButtonOnlyForm PROCEDURE FOR SYSADM.p_OKButtonOnlyForm  :ls  

USING lt_trans; 

EXECUTE OKButtonOnlyForm;

I have managed to get the execute syntax of the call that is generated in 10.5 
{call SYSADM.p_OKButtonOnlyForm('w_vacancy' )}
In 2017 the syntax is 
{call SYSADM.p_OKButtonOnlyForm( ? )}
I cannot get 2017 to recognize the parameter that is to be passed into the procedure.
Is there a difference between the way 10.5 and 2017 handle the odbc connection or communication?
I have tried integer and string with no success. I have tried named parameters ,stripparmnames, disablebind all to no avail.
Any suggestions will be greatly appreciated and tested.

Question Tags: 


Chris Pollach answered Declare procedure calls different between 10.5 and 2017


Hi Gary;

   Can you tell us ...

1) Is the DBMS you are using the same as in 10.5?

2) What is the DBMS being used?

3) Are you using the same DB client as in 10.5?

4) Are you using standard inline DML or calling the SP though an API of SQLCA?

Regards ... Chris's picture

Hi Chris,

1. Yes

2. MS Sql Server 2008R2

3. Yes

4. Standard powerscript code.

The only change is that one environment is 10.5 and the other is 2017. I'm under the impression that the way powerbuilder communicates with the driver may have changed at a low level which is not obvious from the internal workings of powerbuilder.

The only clues I have is that the syntax that the driver receives contains a question mark in 2017 but not in 10.5 hence why I think it is communicating with the drivers in a different manner. Also doesn't help that 10.5 is such an old version to be running against.


I have managed to debug the odbc dll that we are going through in 10.5 powerbuilder is going straight to SQLExecDirect with the variables showing the values. In 2017 it seems to be going to SQLPRocedureColumns and SQLPrepare and the variables are represented with a '?'. This seems to display that the way powerbuilder has decided to communicate with the dll has changed between 10.5 and 2017 at a lower level then what a PB developer has control over?

I've also come across another post which would imply the problem started possibly in 12.5 , unfortunately there is no solution to this post.