[Gambas-user] handling database nulls

Werner wdahn at ...1000...
Wed Apr 15 10:45:56 CEST 2009


Werner wrote:
> Bruce wrote:
>   
>> This has sort of been asked before. However, the answers I have found haven't 
>> helped.
>>
>> My database has a LOT of integer fields, arranged into sets of fieldwork 
>> results.  The majority of them contain nulls, quite validly as the data for a 
>> particular set may not have been entered or even collected yet.
>>
>> My Gambas problem is creating the classes for the various plot types.  Within 
>> Gambas the data items are integers. When I try and read the existing datum 
>> point into the class (as in dp.rangeheight=$dbresult!rangeheight ) it is 
>> complaining that the value is a null not an integer, as in "wanted integer, 
>> got null instead").
>>
>> Now, coercing the value of the object data to zero is NOT valid, as in the 
>> above example, the rangeheight is null not zero, as zero means 0m above the 
>> basepoint.  Similarly, coercing it to a negative value wont work either, as 
>> that means meters below the base point.
>>
>> Is there any way to set the value of an integer variable to an "uninitalised" 
>> state?
>>
>> bruce
>>   
>>     
> A solution might be to use the Variant data type instead of Integer.
> Alternatively, you could define a class that holds a data point plus a
> flag whether the data is valid.
>
> Werner
>   
...or you could set empty data points to -0 which is most significant
bit set to 1 all other bits 0

...or you might be able to use TRY whenever accessing a data point to
catch the exception.

In any case there needs to be a test whether the data is valid.

As you said, the majority of data fields is empty. If you have a
humongous amount of data it might be worth looking into "spare matrix"
compression (what spreadsheets do)

Werner





More information about the User mailing list