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

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

Как указать процедуре что она відает множество? [D6, IB6.x, FireBird]


Кило ©   (2003-02-18 11:28:00) 

Мастера , помогите!
Есть такая процедура:
CREATE PROCEDURE GETPATHTOROOT
RETURNS (
ID INTEGER)
AS
BEGIN
select id_operation
from type_operation
where child_cnt=0

into :id;
suspend;
END

ругается что возвращает множество, когда определена процедура, которая должна возращать одно значение.


Кило   (2003-02-18 11:44:00) [1]

А я думал, что не цыкле надо, ну ок, спасибо.


Delirium^.Tremens   (2003-02-18 11:41:00) [2]

FOR
SELECT ...
INTO ..
DO
SUSPEND;


zacho   (2003-02-18 11:40:00) [3]

Дело в том, что в процедуре конструкция SELECT ... INTO ... должна возвращать только одну запись. Если тебе нужно обработать набор записей используй FOR SELECT ... INTO ... DO ...
Так что в твоем случае ошибка происходит потому что в таблице type_operation находится несколько записей с child_cnt=0


Наверх

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