ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / Managing databases / HFSQL
  • Overview
  • How to manage the NULL value in an item?
  • Managing the NULL value
  • Limitations
  • How to use the NULL value in my applications?
  • How to save a NULL value in an item?
  • Customizing the display of the items whose value is NULL
  • Query: Selection condition
  • Example
  • Limitations
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Overview
WINDEV, WEBDEV and WINDEV Mobile support NULL values in items of HFSQL data files and for all other types of access (Native, OLE DB, etc.).
Therefore, when calculations are performed in your data files, the records containing a Null item will be ignored. For example, if a query calculates the average grade of students for the quarter, only the grades of the attending students will be taken into account. If a student is absent, their grade will be a Null value.
How to manage the NULL value in an item?

Managing the NULL value

To manage the null value in your data files, you can use:
  • In the data model editor:
    • the "Support NULL values" option in the data file description ("Details" tab). This option allows you to specify if the data file supports NULL values. In this case, you will have the ability to manage the NULL value for the different items of the data file.
    • the "Allow NULL values in indices (compatible only with version 28 and later)" option in the data file description ("Details" tab). This option indicates that the key item can contain NULL values. Records whose indIices contain NULL values will be searchable.
      CAUTION: Once this feature is enabled, the generated index file is only compatible with versions 28 and later.
      Only applications compiled in version 28 and later will be able to access these data files.
      An error occurs if an application developed in version 27 or earlier attempts to access a file and this option is enabled: "Error, the file version is too recent".
    • a "Default to NULL" option available for each item of your files ("General" tab of the item description). This option allows you to define the null value as default value for the item.
    • a "NULL allowed" option for each item of your files ("General" tab of the item description). This option is used to allow (or not) the use of the NULL value for this item. By default, if NULL is supported by the data file, the "NULL Allowed" option is checked for all the items of the data file.
  • In programming, several properties:
    NullThe Null property is used to:
    • Assign NULL to the item for the current record.
    • Find out whether the item is associated with the NULL value for the current record.
    • Define the default value of an item when the item is described through programming.
    NullableIndexThe NullIableIndex property determines if a key item supports the "Null" value.
    NullAllowedThe NullAllowed property is used to manage the NULL value in the items of HFSQL data files.
    NullSupportedThe NullSupported property is used to manage the NULL value in HFSQL data files.

Limitations

The NULL value cannot be used:
  • on the array items.
  • on the composite keys.
How to use the NULL value in my applications?

How to save a NULL value in an item?

  1. Check the "NULL supported" box when the data file is described in the data model editor ("Description of data file" in the context menu, "Info" tab).
    By default, "NULL Allowed" is checked for all file items.
  2. Generate the analysis.
  3. Check "NULL if empty" for the edit control linked to the item. If no value was entered by the user in this control, the NULL value will be automatically assigned to the item when using:
Remarks:
  • The "NULL if empty" option for the edit controls can also be used to manage the optional parameters of a query with parameters. For more details, see Using a query with parameters.
  • If the default value of the item is NULL (box checked in the editor), HReset resets the Null property to True.
  • By default, the "Allow NULL values in indices (compatible only with version 28 and later)" option is not checked. This means that the data file is compatible with older versions. NULL indexes are then considered as empty strings ("") in string items, or as the value 0 in numeric items.
    If the "New tab" option is checked, the key item can contain NULL values. Records whose indIices contain NULL values will be searchable.

Customizing the display of the items whose value is NULL

By default, if an edit control is linked to an item whose value is NULL, the value displayed in the control is "". To customize this display mode, use ControlError associated with the ceNull constant.

Query: Selection condition

In the query editor, you have the ability to take into account or to ignore the records that have a null item. To do so, create a selection condition and choose "Is null" or "Is not null".
In a selection query that performs a calculation, all the records that have a null value (for the calculation item) will be ignored.

Example

The following example is a query used to calculate the average grade of students for the 2003 French class. If one of the grades corresponds to the NULL value, this grade is ignored.
SELECT Marks.Course AS Course,
Marks.MarkDate AS MarkDate,
LEFT(Marks.MarkDate,4) AS Year,
AVG(Marks.Mark) AS the_average_Mark
FROM Marks
WHERE Marks.Course = 'French'
AND Marks.Mark IS NOT NULL
AND LEFT(Marks.MarkDate,4) = '2003'
GROUP BY Marks.Course, Marks.MarkDate, LEFT(Marks.MarkDate,4)
Limitations
  • When managing the integrity, the NULL value is ignored.
  • A linked record on 0 or empty string ("") is equivalent to a linked record on NULL.
  • For backward compatibility, the transfer of Null by assignment is not allowed.
    • Don't:
      File1.Item1 = File2.Item2
    • Do:
      File1.Item1..Null = File2.Item2..Null
New in version 2024
Nullable types: If "Allow nullable types" is checked in the project description, you can use the following syntax:
File1.Item1 = File2.Item2
For more details, see Support NULL values: Allow nullable types.
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 04/15/2024

Send a report | Local help