Пользуюсь компонентами "Direct Oracle Access 405" для доступа к Oracle из BCB6.
Заинтересовался вопросом, как можно в переменную подстановки передать значение NULL.
Типичная передача не-NULL значения:
  TDate someDate;
  OracleQuery->DeclareAndSet("SOME_DATE", otDate, someDate);
  // ...
Что-то не могу найти в доках, как подставить NULL.
Описание функции DeclareAndSet (для BCB и Delphi используется одна и та же библиотека и примеры в доке даны для Delphi):
procedure DeclareAndSet(Name: string; Type: Integer; Value: Variant);
Тип Varaint может содержать след. типы:
•   short
•   int
•   float
•   double
•   Currency
•   TDateTime (TDate автоматически приводится к TDateTime)
•   bool
•   WordBool
•   Byte
•   AnsiString&
•   char *
•   wchar_t * const
•   Ole2::IDispatch* const
•   Ole2::IUnknown* const
Т.е. никаких намеков на то, как закодировать NULL. Тем более, что TDate в своей основе - float, и NULL тут никак не выйдет.
Есть такое понятие как "substitution variables", но заменять дату на подстановку некошерно и не хотелось бы - может получиться Ж при иной настройке NSL на клиентской машине.