[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