Можно ли в Firebird использовать циклы по переменной

Модераторы: kdv, CyberMax

Ответить
break
Сообщения: 58
Зарегистрирован: 12 май 2005, 11:03

Можно ли в Firebird использовать циклы по переменной

Сообщение break » 25 дек 2006, 02:16

Можно ли каким то образом использовать в хранимой процедуре циклы по переменным
что-то аналогичное вот этому:

Код: Выделить всё

create procedure test
as
declare variable i integer;
begin

  i = 0;
  while :i < 5 do
    begin
      insert into OBJECTS(level_count)
                   values(1);
      i = i + 1;
    end

  suspend;
end
Если нет то как обойти ситуацию??

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 25 дек 2006, 07:50

А что не получается? SUSPEND убери.

break
Сообщения: 58
Зарегистрирован: 12 май 2005, 11:03

Сообщение break » 25 дек 2006, 10:02

Использую FB 1.5 - вообще отказывается компилить процедуру - ругается на переменную I

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 25 дек 2006, 10:09

Условия всегда заключаются в скобки (за исключением проверки INSERTING, UPDATING и DELETING).
Вместо:

Код: Выделить всё

while :i < 5 do
надо:

Код: Выделить всё

while (i < 5) do

break
Сообщения: 58
Зарегистрирован: 12 май 2005, 11:03

Сообщение break » 29 дек 2006, 15:41

Огромное спасибо! Все работает!

Кстати если не трудно дайте ссылочку где можно прочитать про упомянутые (INSERTING, UPDATING и DELETING) - никогда не использовал эти операторы!

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 29 дек 2006, 15:50

C:\Program Files\Firebird\Firebird_2_0\doc\Firebird_v1.5.3.ReleaseNotes.pdf

Ответить