Hello, Janex!

Janex wrote:


Oleg LOA wrote:
 > ANumericValue^ - и что это будет при  ANumericValue == nil?

Ну ето понятно что будет оч нехорошо, но если мы UDF-у в параметре даём NULL или нормальныи параметр, то как он может быть nil ?
При каких входных параметрах он может бить nil ?

Значит сперва проверка на nil и потом только на UDF_IsNull(ANumericValue^) ???

function isNull(const Test: PDSC): Integer; cdecl;
begin
  try
    if (Test = nil) or
       (Test^.dsc_address = nil) or
       ((Test^.dsc_flags and DSC_null) = DSC_null) then
      Result := 1
    else
      Result := 0;
  except
    result := -1;
  end;
end;

я уж не помню, чье это, но вообще так нельзя. т.е.
за if (Test = nil) or (Test.dsc_address = nil)
я бы руки отрубал.

но надеюсь, смысл всех трех проверок ясен.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34


Ответить