![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нюанс по написанию процедуры InterBase
Step[B.M.] © (2003-07-28 11:38:00)
for select KFO from TBL WHERE KFO=4
into :VAR_KFO do XXXXXXXX; else YYYYYYYYYY;
Так вот. Если в таблице найдется KFO=4 то ХХХХХХХХХ выполнится но
если не найдется то YYYYYYYYYY почему-то не выполняется.
Как поступить чтоб выполнялся :)
Спасибо.
Step[B.M.] (2003-08-08 19:48:00) [1]
Спасибо огромное что вы так все "погадали". Много чего полезного. Благодаря Вам все у меня получилось :)
HSolo (2003-07-28 14:33:00) [2]
Попробую и я погадать :))
if exists (select KFO from TBL WHERE KFO=4)
then XXXXXXXX; else YYYYYYYYYY;
Соловьев (2003-07-28 12:14:00) [3]
> Zacho © (28.07.03 12:03)
почему? если цыкл не выполниться, то VAR_KFO будет NULL :)
Правда я сначала не посмотрел запрос - смылса в нем нет. А вот твой вариант
> Zacho © (28.07.03 11:48)
имеет смыл :) А что автор поста хотел - остается догадываться :)))
Zacho (2003-07-28 12:12:00) [4]
> Zacho © (28.07.03 12:03)
Да, а здесь я не прав. :-) Похоже не правильно понял, что именно надо было автору. Будет работать, только стоило бы еще перед FOR SELECT написать VAR_KFO=NULL;
Zacho (2003-07-28 12:03:00) [5]
> Соловьев © (28.07.03 11:58)
Не, это тоже не будет работать. Условие VAR_KFO is NULL не выполнится никогда, т.к. в VAR_KFO окажется последнее выбранное значение KFO, т.е. 4 :)
Соловьев (2003-07-28 11:58:00) [6]
> Zacho © (28.07.03 11:53)
да ты прав. не то написал. надо
for select KFO from TBL WHERE KFO=4
into :VAR_KFO do XXXXXXXX;
if VAR_KFOis NULL then
begin
YYYYYYYYYY;
end
Zacho (2003-07-28 11:53:00) [7]
> Соловьев © (28.07.03 11:48)
Не-а ... Откуда же возьмется KFO за пределами цикла FOR SELECT ?
Zacho (2003-07-28 11:48:00) [8]
Чего ?? Нет такого синтаксиса в IB. Делай, например, так:
FOR SELECT KFP FROM TBL INTO :VAR_KFO DO
BEGIN
IF (VAR_KFO=4) THEN
BEGIN
XXXXXX;
END ELSE
BEGIN
YYYYY;
END
END
Соловьев (2003-07-28 11:48:00) [9]
> for select KFO from TBL WHERE KFO=4
> into :VAR_KFO do XXXXXXXX; else YYYYYYYYYY;
for select KFO from TBL WHERE KFO=4
into :VAR_KFO do XXXXXXXX;
if KFO is NULL then
begin
YYYYYYYYYY;
end