Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно составить запрос с параметрами? / 2 сообщений из 2, страница 1 из 1
15.09.2009, 11:19
    #36196044
Terio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно составить запрос с параметрами?
Добрый день! Помогите кто знает, или сталкивался с подобной задачей...

Упрощенно рисую схему:
Есть какая-то таблица Tbl:

Id (integer)
Cod (integer)
Field (string)

Поля Cod и Field1 могут иметь нулевые значения (null).
Есть запрос с внешними параметрами по числовому полю PCod(Integer) и по символьному полю PField(String).
Запрос должен быть что-то типа:
SELECT * FROM Tbl
WHERE (Cod=:PCod) and (Field LIKE :PField %)

Есть три случая:
1.) Параметр PCod ничему не равен, параметр PField ничему не равен.
Запрос должен вернуть ВСЕ записи из таблицы (включая те, где Сod = null или Field = null).
2.)Параметр PCod равен какому-то определенному числу, PField ничему не равен.
Тогда запрос должен возвращать все записи из таблицы, где PCod = этому числу (включая те, где Field = null).
3.) Параметр PCod ничему не равен, параметр PField - какое-то слово.
Тогда запрос должен вернуть записи, где PField содержит это слово (LIKE :PField %), включая те, где Cod = null.


Надо как-то задать параметры PCod и PField так, чтобы выбирались ВСЕ ЗАПИСИ из таблицы, или два других варианта...
В качестве внешнего значения "is null" записи не выбираются (Среда разработки приклада ругается).
* (звездочка) тоже не проходит.
...
Рейтинг: 0 / 0
15.09.2009, 12:52
    #36196412
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно составить запрос с параметрами?
Код: plaintext
1.
SELECT * FROM Tbl
WHERE ((Cod=:PCod) or (:PCod is null)) and ((Field LIKE :PField+'%') or (:PField is null))
либо формируйте конструкцию WHERE программно на клиенте
С уважением, Naf
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно составить запрос с параметрами? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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