Skip to content

IfNull ​

The IfNull function checks the variant aValue1, and if it is null (it has a vartype equal to 1), then it will return the replacement value of aValue2.

If aValue1 is not null, then it will return its own value aValue1.

A variable can be forced to null.

Please also review IfEmpty and also the String Function IfBlank.

Declaration: Function IfNull( const aValue1, aValue2 : Variant) : Variant;

Several examples are illustrated in the following.

pascal
procedure ScriptEvent (var Value : variant);
var
  aVarVar, bVarVar, cVarVar : variant;
begin
  aVarVar := null;                                         //aVarVar is set to NULL
  LogInfo('aVarVar = '+IntToStr(VarType(aVarVar)));        //NULL variant variable returns a VarType of 1
  bVarVar := 'Test';                                       //bVarVar is set to 'Test'

  LogInfo('');
  LogInfo('1st pass . . .');
  cVarVar := IfNull(aVarVar, 'Param1 is null');
  LogInfo('bVarVar = '+bVarVar);                           //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                           //cVarVar is 'Param1 is null'

  LogInfo('');
  LogInfo('2nd pass . . . ');
  cVarVar := IfNull(aVarVar, bVarVar + ' result!');         //aVarVar is NULL
  LogInfo('bVarVar = '+bVarVar);                            //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                            //cVarVar is 'Test result!' (ie. bVarVar+' result!')

  LogInfo('');
  LogInfo('3rd pass . . . ');
  cVarVar := IfNull(aVarVar, 'Result!');                    //aVarVar is NULL
  LogInfo('bVarVar = '+bVarVar);                            //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                            //cVarVar is 'Result!'

  LogInfo('');
  LogInfo('4th pass . . . ');
  cVarVar := IfNull(null, 'Param1 is the CONST null!');     //Param1 is 'null'
  LogInfo('bVarVar = '+bVarVar);                            //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                            //cVarVar is 'Param1 is the CONST null!'

  LogInfo('');
  LogInfo('5th pass . . . ');
  cVarVar := IfNull('We are Param1', 'We are Param2!');    //Param1 is 'We are Param1'
  LogInfo('bVarVar = '+bVarVar);                           //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                           //cVarVar is 'We are Param1'

 end;