× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: SQL processing in RPG programs
  • From: jpcarr@xxxxxxxxxxxx
  • Date: Wed, 27 Sep 2000 08:36:58 -0400


<snip>
>By the way how do you test if a field resulting from an
>embebbed sql statement is null? I don't know how to handle
>since is not the same as RPGIV. Somebody know other ways?
Marco Facchinetti
<snip>


Here's two examples of  how to handle SQL Null fields in RPGIV.

Note:  The DB field doesn't contain a null character(no such thing).

 You have to test the Indicator Variable associated with the field.   In
the example below,   SalesNull is an Indicator Variable that will be a -1
if it's associated field DSCustSales is null during the fetch function.
On an Insert,   You would say something like  < C      Eval     SalesNull
=  -1  >    Then do an Insert to write DSCustSales as Null.

BTW,   I do in house classes on this stuff if anyone is interested.

   D SalesNull S    4B 0
    C/Exec SQL
    C+             Select CustId,
    C+                        CustNam,
    C+                        CustSales
    C+             Into:   :DSCustId,
    C+                        :DSCustName,
    C+                        :DSCustSales :SalesNull
    C+             From Customer  Where CustId = 'ACME'
    C/End-Exec

---------
Here's how you would do an array of Null capable fields into a D/S  You
have a D/S to put the individual fields you are fetching into and (followed
by a colon) is a structure of an array of binary fields to hold the null
representation of each of those fields.

D CustomerR    DS
D    CsCustID         7P  0
D    CsName         30A
D    CsShpCity      30A
D    CsDiscount            5P  3

D CustomerIDS  DS
D    CsIDNull         4B  0
D    CsNameNull            4B  0
D    CsShpCityNull    4B  0
D    CsDiscountNull   4B  0
D*
D     CustomerI           4B   0  Dim(4) overlay(CustomerIDS)

C/Exec SQL
C+        Select    CustID,
C+             Name,
C+             ShpCity,
C+             Discount
C+        Into :CustomerR :CustomerI
C+        From Customer
C+        Where     CustID =:SelCst
C/End-Exec


John Carr


+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.