Wednesday, January 28, 2015

Reading a SQL table in RPG

reading sql table in rpg

This idea for this post comes from a Comment posted on Creating a SQL table on the fly. Anonymous posed the question "Now how do you use that table in your RPG program?".

The post I describe how it is possible to use the SQL CREATE TABLE to build a SQL table extracting data from another file. I have mainly used this in processes that extract data and then send the extracted data to the requester via email. But there is no reason why I cannot read the table created in a RPG program.

Wednesday, January 21, 2015

How to replace Key Lists

replace klist with %kds key data structure or key field list

As we now have all free RPG we need to find ways to move from familiar fixed format definitions to free format equivalents. Key lists, KLIST, are a good example. I still see new programs written in RPGLE with free form calculations, but with fixed format Key lists.

  C     KeyTestfile   klist
  C                   kfld                    wkFld1
  C                   kfld                    wkFld2
  C                   kfld                    wkFld3

The solutions was provided back in V5R2:

Wednesday, January 14, 2015

Trim in CL and its Second Parameter

trim (%TRIM, %TRIMR,%TRIML) is now in CL. And did you know that there is a second parameter to state which characters you want trimmed?

I am sure I am not the only person who has been using the Trim built in functions (BIFs) in their RPG code to remove leading and trailing blanks from strings. Trim BIFs were introduced into CL with IBM i release 7.1, and function in the same way as their RPG brethren.

Were you aware that the Trim BIFs have a second parameter that can be used for removing characters other than blanks? I have Miguel Cordova to thank for bringing this to my attention. Using the second parameter I can remove any character using the Trim. Below I will show examples in RPG and in CL, and discuss what I found in using them in both languages.

Friday, January 9, 2015

Je suis Charlie

Je suis Charlie

I have been following with horror the news from France regarding the Charlie Hebdo massacre, and I have been reflecting upon how this effects me. I am fortunate that I am not in the danger those heroic people were when I express my rights.

I believe that the freedom of expression is essential to the creative process. As developers, programmers, system administrators, operators, etc. we need to be able to express opinions freely without fear of retribution. This blog is an example of my right of expression, as everything I say is my opinion.

While I do not know any of the people murdered or injured in this attack, I do feel that this is an assault on all of us as it attempts to silence us. The freedom of speech is a delicate balance, as one person's freedom of speech can be another’s hate speech. No matter how badly someone felt nothing justifies the actions that took place.

I feel I must join the chorus and say: Je suis CHARLIE.

Wednesday, January 7, 2015

Which Control options/H-specs do you use?

rpg control specification

In my many years of experience working for various companies I have found that just a few programmers define Control specifications in their RPG programs. The Control specification is commonly known as the Header specification, or H-spec, as in fixed format RPG the specification character, in the sixth position of the line, is 'H'. In all free RPG the Control specification was replaced by the Control options, 'CTL-OPT'.

In my opinion this was the most cryptic of the specifications in RPG III as you had to know what each column stood for, as it would only reveal its meaning when F4 was pressed to prompt the line.

Thursday, January 1, 2015

Happy 2015

I have always found New Years exciting, a new year is ahead of me that will be full of exciting new things and adventures. It is also the chance to bid farewell to the old year, and revisit its highlights.

2014 was an exciting year in the IBM i world with the following: