Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нюанс по написанию процедуры 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




Наверх

Титульная страница Поиск, карта сайта Написать письмо