sqlrpgle select into extname using freeform

IBM i

Jun 17

AKA – Why does this compile fail using SQLRPGLE and QUALIFIED data structures?

Sometimes I find a problem and scratch my head and just cannot figure it out. I swear a lot. Then I discover the solution by climbing out of my little box, turning my head at a funny angle, squinting and thinking a bit differently. Then I swear even more.

Problem

I converted a column based piece of SQLRPGLE from this:

d S21uservalues... 
d e ds qualified 
d extname('APG05PHY') 

to this:

dcl-ds S21uservalues qualified extname('APG05PHY') end-ds; 

The SQL to read this looks like this:

exec SQL fetch next from cursorAPG05 into :S21uservalues;

and then it just will not compile!

Compile error is: SQL0312 30 798 Position 52 Variable S21STOCKROOMNAME not defined or not usable.

“But that is completely valid new free format RPG syntax” I scream at the compiler. /me then goes on to waste more time than I am prepared to admit trying every combination of code to figure out whats going on

Solution

The bloody DCL-DS statement is just too long and over-runs the available area into the //text area of this source member. Because I am using SEU (this client does not use any modern code editors and have blocked the ports to use RDi, Mi Workplace or even good old WDSC) the line is highlighted as in error – but I incorrectly assumed it was an error because SEU doesnt know about modern freeformat commands.

So, change it to a shorter and neater layout like this:

sqlrpgle select into extnamedcl-ds S21uservalues
 qualified
 extname('APG05PHY')
end-ds;

and boom it compiles and works.

Annoying — but obvious — once I figured it out anyway.

This wouldnt have been a problem if I had been coding correctly using **FREE

*sigh*

Follow

About the Author

IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.