× 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.



Bob,

Asking what's a "NULL variable" is a good question.  The only answer I
can come up with is, it depends! <grin>

I don't know how oracle stores strings.  But for example,
CREATE TABLE CMWTEST (F1 VARCHAR (10 ) NOT NULL) 

INSERT INTO cmwtest VALUES('')

Fails in Oracle, ORA-01400: cannot insert NULL into <...>

Whereas it works fine in DB2.


As far as RPG and "full NULL support", what I mean is given this code:

If not %nullind(someDate);
  //do something with some date
Endif;

Will work if somedate is a field in a table, but it won't work if
somedate is an RPG internal field.

So when using RPG with files that support NULL, you have to do something
like

If someDateValid;
  %nullind(fdate) = *OFF;
  fdate = someDate;
Else;
  %nullind(fdate) = *ON;
Endif;

If RPG had full NULL support, you could simply have:

fdate = someDate;  

If someDate was NULL, then fdate would be null.



Charles Wilt
--
iSeries Systems Administrator / Developer
Mitsubishi Electric Automotive America
ph: 513-573-4343
fax: 513-398-1121
  

> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx 
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Bob Cozzi
> Sent: Friday, January 27, 2006 3:05 PM
> To: 'RPG programming on the AS400 / iSeries'
> Subject: RE: %Trim dilemma
> 
> What's a "NULL Variable"?
> Do you mean a field that can contain a X'00' or is considered 
> null (as in
> *NULL in RPG IV)?
> Does Oracle use null-terminated strings? If so, then a 
> pointer to a null
> value is an empty string. A null pointer is the same in 
> Unix-based C as it
> is in RPG IV, for the most part. 
> Often C compilers map a 0 or X'00' to the word "null". 
> So  if (mystring == null) means, does the field contain a 
> X'00' in position
> 1 (or offset zero of you're a C person).
> In RPG IV, you can use %str() to move from/to null-terminated 
> strings. But
> you're right, there is not "full null support" (whatever that 
> might mean,
> but I agree that it seems that way).
> 
> So if the l-value's length is ZERO, how many 9's should it be 
> compared with
> in order for it to be false? Based the way *ALL'9' works, by 
> matching its
> corresponding value's length, that would be zero 9's. Hence, 
> they would be
> equal.
> I've written tons of C code, and often have to check for a 
> null address/ptr
> as well as a null value (pointing to X'00') to make sure I'm 
> not screwing
> things up. Doing the following in this case, doesn't seem to strange. 
> I think this is just one of education, and acceptance. Now 
> let's get on with
> the real problems in RPG IV, like hyphens in opcode names! <vbg>
> 
> if %len(%Trim(myField)) > 0
>     and %Trim(myField)= *ALL'9'
> // now we're cookin'
> endif 
> 
> -Bob Cozzi
> www.RPGxTools.com
> RPG xTools - Enjoy programming again.
> 
> 
> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx 
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
> On Behalf Of Wilt, Charles
> Sent: Friday, January 27, 2006 1:52 PM
> To: RPG programming on the AS400 / iSeries
> Subject: RE: %Trim dilemma
> 
> That's debatable, particularly when dealing with a language, like RPG,
> that doesn't provide full NULL support.
> 
> If you consider strings to be sets of characters, then you'd consider
> that in set theory the NULL set and the EMPTY set are one and 
> the same.
> 
> Interesting tidbit, Oracle treats EMPTY strings as NULL 
> strings and vice
> versa.
> 
> However, given that DB2 doesn't treat NULL strings as EMPTY 
> strings, and
> given that RPG doesn't support NULL variables, I probably should have
> said empty instead of NULL <grin>
> 
> 
> Charles Wilt
> --
> iSeries Systems Administrator / Developer
> Mitsubishi Electric Automotive America
> ph: 513-573-4343
> fax: 513-398-1121
>   
> 


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.