TechTip: Use Host Variables to Pass Data from RPG to SQL Statements

RPG
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times
There are many interactive RPG programs that perform data selection based on input parameters from a display file. Every programmer knows how to write the code to accomplish this task using conventional file access. The question is, "How is this done using embedded SQL?" The answer is, "By using host variables."

What is a host variable? When a program retrieves data, the values are put into data items defined by your program and specified with the INTO clause of a SELECT INTO or FETCH statement. The data items are called host variables.

How is a host variable identified in an embedded SQL statement? By the colon (:) found preceding the field name.

If the selection criteria will return only one result row, the SELECT INTO statement can be used. The following code is an example of the SELECT INTO structure:

     C/Exec SQL
     C+  Select MIN(SALARY), AVG(SALARY), MAX(SALARY)
     C+    Into :MinSalary, :AvgSalary, :MaxSalary 
     C+    From EMPMSTR
     C+   Where EDLEVEL > :EducLevel
     C/End-Exec


If the selection criteria will return more that one row, the FETCH statement must be used. The following code is an example of the FETCH structure:

     C/Exec SQL
     C+  Fetch Cursor1 Into
     C+    Into :RptLastName, :RptFirstName, :RptSalary 
     C/End-Exec


In conjunction with the FETCH statement, a cursor must be defined, and the cursor must be opened prior to the FETCH and closed after the FETCH.

Now you're asking, "What is a cursor?" It is a declaration of an SQL SELECT statement without the INTO that will potentially return more than one row of data. The following code is an example of an SQL cursor declaration:

     C/Exec SQL
     C+  Declare Cusror1 Cursor For
     C+     Select LASTNAME, FIRSTNAME, SALARY
     C+       From EMPMSTR
     C+      Where EMPNO  = :ScnEmp#
     C/End-Exec


In the preceding code samples, you have seen two of the three ways that host variables are used in embedded SQL:
In a WHERE clause

  1. As a receiving area for column values (named in an INTO clause)


The third way that a host variable is used is as a value in a SELECT clause. The following code is an example of this:

     C/Exec SQL
     C+  Select LASTNAME, SALARY, :Raise, SALARY + :Raise
     C+    Into :RptLastName, :RptSalary, :RptRaise, :RptNewSalary 
     C+    From EMPMSTR
     C+   Where EMPNO  = :ScnEmp#
     C/End-Exec


With this basic knowledge, using host variables within embedded SQL is made simple.

More information is required to use embedded SQL. The additional information on host variables and embedded SQL can be found on the iSeries Information Center. Select the region, language, and operating system version. Then, navigate to the link for Programming>SQL and select the SQL Programming with Host Languages book.

Paul Weyer is a consultant with New Resources Consulting. He has worked on the iSeries (AS/400) since 1987. His background includes both hardware configuration/installation and software development. Paul is a subject matter expert (SME) with COMMON in the areas of LPAR, IT optimization, performance, availability/business continuity, iSeries operations, and "Managing Beyond Your Server." His language background includes both COBOL and RPG, and he has been using SQL since 1987. Email Paul at This email address is being protected from spambots. You need JavaScript enabled to view it..

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  •  

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: