![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Жучок?? [FireBird 1.0.796]
Карелин Артем © (2002-12-23 15:25:00)В хранимой процедуре делаю запрос типа:
Select distin field1,field2,field3 where //1-3 усливия типа field100=:Param200// and Field1 starting with :param90 into ....
Передаю туда пустую строку.("")
Если поле Field1 не индексировано, то все ок, т.е. выводит все записи. Если индексировано, то датасет пустой.
Где в моем ДНК ошибка?
P.S. Анализировать строку на пустоту неохота - в процедуре уже несколько ветвлений.
Карелин Артем (2002-12-24 10:25:00) [1]Мда.......
Like работает стабильно, а вот фигня с Starting With не заработала при переустановке FireBird более нового билда.
Карелин Артем (2002-12-23 15:51:00) [2]Вообще-то LIKE :param||" %" - чуть позже обязательно попробую.
Delirium^.Tremens (2002-12-23 15:50:00) [3]Пардон, конечно же :and Field1 LIKE :param90||"%"
Delirium^.Tremens (2002-12-23 15:49:00) [4]
Select distinct field1,field2,field3
where field100=:Param200
and Field1 LIKE :param90||""
...
into ...
Карелин Артем (2002-12-23 15:43:00) [5]Null передаваться не будет. Дело состоит в том, что без индексов работает, а с индексами нет при param90=""
Prooksius (2002-12-23 15:40:00) [6]У тебя нет преобразования Field1 = :Param в Field1 is null, если Param - Null.
Насколько я помню, FIBPlus поддерживает это.
Delirium^.Tremens (2002-12-23 15:35:00) [7]Если это строка, то можно рассмотреть LIKE :param||"%"
Prooksius (2002-12-23 15:34:00) [8]2 Карелин Артем © (23.12.02 15:32)
Нет не один.
Карелин Артем (2002-12-23 15:32:00) [9]Один хрен if (param90="" or param90 is null)
Delirium^.Tremens (2002-12-23 15:30:00) [10]Это не пустая строка, а строка нулевой длины. Пустая строка - это (IS NULL). Еще один вариант?