Marc
You're kind of getting it.  With eqnull off, HELLO does not NOT EQUAL NULL 
(double negative intentional).  NULL equals nothing and does NOT equal 
anything - that's the standard.
 
Look at this test.rmd and watch how with eqnull off, the statement 
evaluates FALSE - HELLO does not NOT EQUAL NULL:

set var vtrueresult text = null
set var vfalseresult text = null
set var vtext1 = 'hello',  vtext2 text = null
if vtext1 <> .vtext2 then
   set var vtrueresult = 'True'
else
   set var vfalseresult = 'False'
endif
sho var
return

Now watch it evaluate with both eqnull off, and then on:


R>sho eqnull
(EQNULL   ) OFF Treat null EQual NULL as a match

R>run test.rmd
Variable           = Value                                   Type
------------------   ------------------------------          --------
#DATE              = 04/11/2008                               DATE 
#TIME              = 10:48:50                                 TIME 
#PI                = 3.14159265358979                         DOUBLE 
SQLCODE            = 0                                        INTEGER 
SQLSTATE           = 00000                                    TEXT 
#NOW               = 04/11/2008 10:48:50                      DATETIME
vtrueresult        = -                                        TEXT 
vfalseresult       = False                                    TEXT 
vtext1             = hello                                    TEXT 
vtext2             = -                                        TEXT 

R>set eqnull on

R>run test.rmd
Variable           = Value                                   Type
------------------   ------------------------------          --------
#DATE              = 04/11/2008                               DATE 
#TIME              = 10:49:10                                 TIME 
#PI                = 3.14159265358979                         DOUBLE 
SQLCODE            = 0                                        INTEGER 
SQLSTATE           = 00000                                    TEXT 
#NOW               = 04/11/2008 10:49:10                      DATETIME
vtrueresult        = True                                     TEXT 
vfalseresult       = -                                        TEXT 
vtext1             = hello                                    TEXT 
vtext2             = -                                        TEXT 

I wouldn't worry about it as you've obviously programmed your apps with 
eqnull on thinking.  As long as you know that's how they're going to work, 
then you're ok.  The point is, it's just not SQL standard.

Dawn Hast

Office - (828) 646-2669
Cell  - (828) 246-8543



"Marc" <[EMAIL PROTECTED]> wrote on 04/11/2008 10:32:57 AM:

> This always reminds me of Who's on First, it makes your head spin.
> 
> But to my way of thinking and what I think would make sense to users
> 
> Hello is only = to Hello therefore <> to anything else
> 
> so with EQNULL ON or OFF the Pause statement should fire because
> no matter what Hello can not be = to a blank field or a null or empty 
field
> Hello can only be = to Hello
> 
> The same for <>  Hello is = to only Hello therefore <> to everything 
else.
> 
> Am I nuts or just not getting this.  Maybe my RBrain is set Off?
> 
> Marc
> 
> 
> 
> 
> ----- Original Message ----- 
> From: [EMAIL PROTECTED] 
> To: RBASE-L Mailing List 
> Sent: Friday, April 11, 2008 8:31 AM
> Subject: [RBASE-L] - Re: EQNULL ON or OFF
> 
> Marc:
> 
> For you, the danger would be to set it OFF right now without 
> checking your programs.  If your programs were done with the 
> assumption that eqnull was set ON, then you better not change the 
> setting.   Here's the main difference:
> 
> set var vtext1 = 'hello',  vtext2 text = null
> if vtext1 <> .vtext2 then
>   pause 2 using 'they are not equal, so do something'
> endif
> 
> if eqnull ON, then the pause would evaluate because it is able to 
> compare a null to a value.  If you eqnull is OFF (which I believe 
> the majority of us do), then a null cannot be compared with anything
> and the pause would NOT evaluate.
> 
> Karen
> 
> 

> Marc,
> 
> When EQNULL is on, R:BASE doesn't distinguish a null from a zero, so
> any average calculations are screwy.
> 
> Bill
> 
> On Fri, Apr 11, 2008 at 8:41 PM, Marc <[EMAIL PROTECTED]> wrote:
> 
> After reading the other thread I got nervous about my EQNULL setting.
> I have it set to ON, so now I am worried.  I had a problem sometime back
> and setting EQNULL ON fixed that problem so I just leave it on.
> 
> What are the dangers with it ON?
> 
> thanks
> Marc
> 

Reply via email to