Checking for null date

Steve Albin steve at steve-albin.com
Sun Mar 29 14:12:50 CDT 2009


On Sunday, March 29, 2009 sunshine at public.kherson.ua (Ruslan Zasukhin) wrote:

>On 3/29/09 9:58 PM, "Steve Albin" <steve at steve-albin.com> wrote:
>
>>>> I'm using V4RB 4 and I need to know how to tell if a date field in a cursor
>>>> is
>>>> null.  
>>>> 
>>>> I tried this:
>>>> 
>>>>   if VDateTime(cursor.Field(27)).Value <> nil then
>>>>     Return  VDateTime(cursor.Field(27)).Value
>>>>   else
>>>>     Return nil
>>>>   end
>>>>  
>>>> This returns a date field, but an invalid date which I would expect since I
>>>> know the field is <NULL>.
>>>> 
>>>> I tried this:
>>>> 
>>>>   if  self.cursor.Field(27).GetString <> "" then
>>>>     Return  VDateTime(cursor.Field(27)).Value
>>>>   else
>>>>     Return nil
>>>>   end
>>>>     
>>>> This returns nil as expected.
>>>> 
>>>> I can easily change my code to check the string value, but it seems that the
>>>> first way should work.  What am I doing wrong?
>>> 
>>> Much more easy
>>> 
>>>    if curs.Field(27).IsNull
>> 
>> That is easier.  Thanks!
>> 
>> But, the question was why doesn't VDateTime(cursor.Field(27)).Value return
>> nil.  Is is becasue casting the date causes a date field to be created with
>> unpredictable results?  This is probably an RB question more than a Valentina
>> question...
>
>No,
>
>This is because WE did not promise you this !! :-)
>
>Valentina PATTERN of work with NULL and value is:
>
>  IF you know that you have NULLABLE field THEN
>    
>    * you MUST at first check
>            fld.IsNull()        <<< this read ONE BIT from bitset file
>
>    * then only if not NULL, you can touch
>            fld.Value           <<<< reads from VALUE file,
>                                this can be many bytes ...
>
>

I understand now.  

In other words, you can only cast to VDateTime is you know that you have a valid VDateTime.  RB will allow casting to a null date, but the result is garbage.

Thanks!

Steve





-- 
Steve Albin - Montclair, NJ
http://www.jazzdiscography.com/
http://www.steve-albin.com/


More information about the Valentina mailing list