powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBExpert работает в IBX нет
10 сообщений из 10, страница 1 из 1
IBExpert работает в IBX нет
    #40125933
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конструкция для пропуска нулевых параметров
Код: sql
1.
select * from table1 where (field1 like iif(:param1 is null, '%' , :param1))



Такая конструкция замечательно работает в IBExpert, но при попытке открыть запрос TIBQuery, выдает исключение
Код: pascal
1.
Project Project1.exe raised exception class EIBClientError with message 'Unknown SQL Data type (32766)'
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40125936
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй привести к нужному типу, что-то наподобие

cast(:param1 as varchar(100))
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40125994
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Конструкция для пропуска нулевых параметров
Код: sql
1.
where (field1 like iif(:param1 is null, '%' , :param1))




Я бы замен л эту конструкцию на такую:
Код: sql
1.
where (:param1 is null or field1 like :param1)


Так короче, нагляднее и работать будет быстрее.

Если и так ошибка будет - уже сказали, что попробовать. Или в делфи попробовать тип параметра вручную установить.
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126001
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antoxТакая конструкция замечательно работает в IBExpert, но при попытке открыть
запрос TIBQuery, выдает исключение

1. IBExpert использует FIB+, а не IBX.
2. Они изрядно модифицированы его автором для поддержки новых фич Firebird.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126041
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock


Я бы замен л эту конструкцию на такую:
Код: sql
1.
where (:param1 is null or field1 like :param1)


Так короче, нагляднее и работать будет быстрее.


Не могу понять логику такой конструкции - :param1 is null исключает параметр из фильтрации?
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126042
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

antoxТакая конструкция замечательно работает в IBExpert, но при попытке открыть
запрос TIBQuery, выдает исключение

1. IBExpert использует FIB+, а не IBX.
2. Они изрядно модифицированы его автором для поддержки новых фич Firebird.


Про 1 в курсе, думал, может не в этом дело
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126048
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
YuRock


Я бы замен л эту конструкцию на такую:
Код: sql
1.
where (:param1 is null or field1 like :param1)



Так короче, нагляднее и работать будет быстрее.


Не могу понять логику такой конструкции - :param1 is null исключает параметр из фильтрации?

Если условие :param1 is null выполнится, то условие field1 like :param1 будет уже не важно (подозреваю, что оптимизатор даже проверять его не будет - вначале проверит константное условие, и если этого достаточно, то всё).
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126053
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Код: pascal
1.
'Unknown SQL Data type (32766)'


Какой тип параметра?
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126054
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
подозреваю, что оптимизатор даже проверять его не будет - вначале проверит константное условие, и если этого достаточно, то всё
А может, даже, и вообще условие выкинет, если оно всегда TRUE, но это я не знаю, догадки, и код ФБ в этом месте я не смотрел.
...
Рейтинг: 0 / 0
IBExpert работает в IBX нет
    #40126060
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanКакой тип параметра?

Код: plaintext
1.
#define SQL_NULL                         32766


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBExpert работает в IBX нет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]