Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Параметр SQL запроса....   Найти похожие ветки 

 
cranium ©   (2003-01-21 22:40) [0]

Вот к примеру есть следующий запрос

FOR SELECT ID_GRUPENUM,
ID_PARENT,
GRUPENUM,
LONG_NAMENUM,
TYPE_DATE,
NOTE_ENUM
FROM GRENUMER
WHERE ID_PARENT=:ID_PAR

Как в услове запроса передать значение любой, тоесть получить все записи таблицы....


 
Jeer ©   (2003-01-21 23:02) [1]

убрать where..


 
cranium ©   (2003-01-21 23:16) [2]

Так это просто! А вот можно ли передать значение любой и не менять запрос...


 
ЮЮ ©   (2003-01-22 02:52) [3]

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)



 
-=Sergeante=- ©   (2003-01-22 10:21) [4]

Я обычно пользуюсь в таких случаях макроподстановками (если у тебя 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;


Таким макаром можно задавать какой угодно сложности условия выборки.


 
-=Sergeante=- ©   (2003-01-22 10:23) [5]

Ляп: params.ByName конечно же.


 
-=Sergeante=- ©   (2003-01-22 10:29) [6]

Ой ёлки, это ж ХП. Венюсь.



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
14-15922
Дремучий
2003-01-20 23:17
2003.02.06
Постучали мне на аську.... :))


7-15961
aleksander
2002-11-21 11:11
2003.02.06
Уникалный идентификатор HDD


3-15424
D
2003-01-21 14:20
2003.02.06
ошибка при отобр-и данных с LookupField


1-15613
Explorer
2003-01-23 08:41
2003.02.06
Переход по Enter


3-15527
avch
2003-01-21 14:58
2003.02.06
Если кто работал с dxDBGrid, то как поймать такое событие?