![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметр SQL ;запроса.... [IB6.x]
cranium © (2003-01-21 22:40:00)Вот к примеру есть следующий запрос
FOR SELECT ID_GRUPENUM,
ID_PARENT,
GRUPENUM,
LONG_NAMENUM,
TYPE_DATE,
NOTE_ENUM
FROM GRENUMER
WHERE ID_PARENT=:ID_PAR
Как в услове запроса передать значение любой, тоесть получить все записи таблицы....
-=Sergeante=- (2003-01-22 10:29:00) [1]Ой ёлки, это ж ХП. Венюсь.
-=Sergeante=- (2003-01-22 10:23:00) [2]Ляп: params.ByNameконечно же.
-=Sergeante=- (2003-01-22 10:21:00) [3]Я обычно пользуюсь в таких случаях макроподстановками (если у тебя FIBPlus). Настоятельно рекомендую.
FOR SELECT ID_GRUPENUM,
ID_PARENT,
GRUPENUM,
LONG_NAMENUM,
TYPE_DATE,
NOTE_ENUM
FROM GRENUMER
@@WHERE%where ID_PARENT=:ID_PAR@
В коде:
with dataset do begin
params.myname["where"].clear;
closeopen(flase);//вывести все записи
/// или
params.myname["where"].setDefaultValue;
prepare;
params.myname["ID_PAR"].asInteger=<ключ>;
closeopen(false);//вывести по условиям WHERE
end;
Таким макаром можно задавать какой угодно сложности условия выборки.
ЮЮ (2003-01-22 02:52:00) [4]FOR SELECT ID_GRUPENUM,
ID_PARENT,
GRUPENUM,
LONG_NAMENUM,
TYPE_DATE,
NOTE_ENUM
FROM GRENUMER
WHERE (0 = :ID_PAR) OR (ID_PARENT=:ID_PAR)
Тогда, если передать 0, то получим все записи. Иногда, правда, бывают проблемы при использовании одногоименного параметра несколько раз. Тогда лучше
WHERE (0 = :SELECT_ALL) OR (ID_PARENT=:ID_PAR)
cranium (2003-01-21 23:16:00) [5]Так это просто! А вот можно ли передать значение любой и не менять запрос...
Jeer (2003-01-21 23:02:00) [6]убрать where..