Пользуюсь компонентами "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 на клиентской машине.