|
Модераторы: Akella |
|
loneybibi |
|
|||
Любитель Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: нет Всего: 3 |
Добрый день всем!
Есть сервер FireBird 2.1, SQLDialect3. В базе данных описана вот такая хранимая процедура, но в ней третий "if" когда (FILTER_TYPE=2) не хочет работать и все время выдает пустую выборку. Прошу подсказать что не так в этой процедуре или логике, как правильно описать LIKE запрос в данной ситуации? Что еще может быть не так ? За советы по улучшению и простоте отдельное спасибо. Заранее большое спасибо. На входе подается 0,1 или 2. При 0 выбираються все данные из таблицы, при 1 из второго столбца по второму входящему параметру, при 2 из третьего по входящему параметру. Вообщем что бы не писать отдельные процедуры для каждого варианта.
-------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
сделайте case вместо нескольких if
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Да соберите всё в один запрос:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
loneybibi |
|
||||||||
Любитель Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: нет Всего: 3 |
Пытался вот по такой схеме не получается!
Приведите пожалуйста пример правильно case для firebird 2.1. Добавлено через 1 минуту и 50 секунд
Спасибо! Ваш вариант работает как надо вроде. Не могли бы вы пояснить его работу и принцып подробнее!? -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||||||
|
|||||||||
loneybibi |
|
|||
Любитель Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: нет Всего: 3 |
Вот код к которому я пришел. Но теперь другая проблема! LIKE не работает нормально.
Он отбирает только те значения которые точно соответствуют запросу. Например есть запись "ooo telekom" и выберется она только тогда когда FILTER_VALUE будет соответствовать этой полной фразе, если написать "tel" то будет пустой результат. Как исправить что бы он выбирал все похожее?
Это сообщение отредактировал(а) loneybibi - 26.2.2014, 22:04 -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |