Nikolay Ponomarenko пишет:
> Hello, Serge!
> You wrote  on Tue, 20 Jun 2006 17:13:25 +0300:
> 
> 
>  ??>> Я в курсе :) Вообще-то и "or is null" достаточно нагляден.
>  SB> Кто нагляден? Кто "or is null"? :)
>  SB> Ну ка перепиши изначальный запрос
>  SB> select * from test_null t where (t.test_str=:test_null0)
>  SB> на запрос с "or is null" так чтобы при нулл параметре он давал
>  SB> t.test_str is null... и при этом еще и работал. А я полюбуюсь.
> 
> select * from test_null t where (t.test_str=:test_null0) or (t.test_str is 
> null)
> даст мне то, что я хочу, т.к. при нулл параметре (t.test_str=:test_null0)
> выпадает, разве не так?

Ай молодца!  А при НЕ нулл параметре оно тоже даст тебе то что ты хочешь? :)

> Про сложности :test_null0 is null ((coalesce(:test_null0,cast(null as 
> integer)) is null)) я в курсе, но ведь оно мне и не нужно...

Оно тебе нужно. Только ты об этом не хочешь знать. :)
> 
>  ??>> Когда его не предлагают без спроса :))
>  SB> Дык ты попросил. Просто об этом не знал. Опция не просить не взведена.
> 
> Э нет - просил, это когда я вручную установил то свойство. А я не просил,
> я тока квери создал, который ПО УМОЛЧАНИЮ изменяется мой запрос...
> Имхо такой параметр никак не должен быть включенным по умолчанию, а
> то скатимся ко всяким ANSI_NULLS :))
Эта фича сделана не просто так. Без нее парадигма датасета как набора 
SelectSQL,InsertSQL,UpdateSQL.... и т.д. не до конца работоспособна. Она 
остается работоспособной только если условия ограничения по первичному 
ключу таблицы. Если же условие where по всем или части полей, где может 
быть нулл, то... UpdateSQL  тихо не работает, поскольку  условие всегда 
будет давать фальсе.  И решить путем хитрого написания запроса ДО ФБ2 не 
представлялось возможным. Так что... эта фишка была с самых первых 
плюсов, и далее всегда будет по умолчанию.  Я еще не самоубийца чтоб 
сознательно портить совместимость с пред версиями.


Удачи





--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить