Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Вызов функции из функции (zuk0) 13/05/2009 - 11:53:26
      Re: Вызов функции из функции (zuk0) 13/05/2009 - 13:05:23



From: zuk0 - 13/05/2009 - 11:53:26
Subject:Вызов функции из функции
-----------------
Пытаюсь создать функцию, выдающую первую свободную ip-подсеть из списка "всего" и списка занятых. Написл две вспомогательные функции - first_address() и last_address(), работают без вопросов, но как только select с ними ставится в другую функцию - получаем "ошибку синтаксиса" при внесении. Тот же select, выполненный напрямую, срабатывает как должно. Это такое расширение понятия "рекурсия" и MySQLя или я чего-то недоглядел? Вот кусок, на который ругается:
CREATE FUNCTION get_free_net(count INTEGER UNSIGNED)
RETURNS VARCHAR(18)
READS SQL DATA
BEGIN
DECLARE minaddr INTEGER UNSIGNED;
DECLARE maxaddr INTEGER UNSIGNED;
DECLARE curstart INTEGER UNSIGNED;
DECLARE curend INTEGER UNSIGNED;
DECLARE done BOOL DEFAULT FALSE;
DECLARE frecur CURSOR FOR SELECT first_addr(network),last_addr(network) FROM networks WHERE mnemo='.unallocated.' ORDER BY first_addr(network);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE;

OPEN frecur;
Вот на DECLARE frecur оно и помирает =( Есть идеи, как это побороть?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35576



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |