Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобрать в чем ошибка.... 
:(
    Опции темы
chiffa
Дата 21.3.2017, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Всем доброе время суток. Сижу смотрю на код и никак не могу вьехать, что не так и почему не отрабаватыет. Есть хранимая процедура:

Код

BEGIN
DECLARE cursor_finished INTEGER DEFAULT 0;
DECLARE PriceGet FLOAT;
DECLARE MenuidGet INT(11); 
DECLARE CustIdGet id(11);
DECLARE TOTAL_COST FLOAT;

DECLARE cur1 CURSOR FOR
select a.price, a.id from menu a where FIND_IN_SET (a.id, menu_id_ins);


DECLARE CONTINUE HANDLER FOR NOT FOUND SET cursor_finished = 1;


-- SELECT id INTO CustIdGet FROM customers where `COUNTRY` = SUBSTRING(tel_num_ins,1,3) and `CODE` = SUBSTRING(tel_num_ins,4,2) and `TELNUM` = SUBSTRING(tel_num_ins,6,7);

SET @I=1;



SET TOTAL_COST = 0.00;

OPEN cur1;

 REPEAT        
 FETCH cur1 INTO PriceGet, MenuidGet;
 

 IF cursor_finished = 0 THEN

SET TOTAL_COST=TOTAL_COST+PriceGet;


SET @I=@I+1;

 END IF;



 Until cursor_finished END REPEAT;
    CLOSE cur1;
    
    SELECT TOTAL_COST;
        

END




при таком раскладе курсор отрабатывает нормально, но стоит только расскоментировать строку 

Код

SELECT id INTO CustIdGet FROM customers where `COUNTRY` = SUBSTRING(tel_num_ins,1,3) and `CODE` = SUBSTRING(tel_num_ins,4,2) and `TELNUM` = SUBSTRING(tel_num_ins,6,7);


процедура перестает входи в курсор SELECT TOTAL_COST выводит 0.00

Подскажите, в чем может быть проблема? Заранее спасибо

PM MAIL   Вверх
Akina
Дата 21.3.2017, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(chiffa @  21.3.2017,  19:40 Найти цитируемый пост)
стоит только расскоментировать строку

Значит, она не возвращает записей. Срабатывает хандлер. "Вход в курсор", как ты выразился, при этом таки происходит, но из-за строки 29 суммирования нет, а из-за строки 40 цикл сразу заканчивается, хотя в курсоре ещё есть записи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
chiffa
Дата 22.3.2017, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



спасибо за ответ! И как быть в такой ситуации?
PM MAIL   Вверх
Akina
Дата 22.3.2017, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Зачем тебе этот селект, если его результат больше нигде не используется? так и оставь его закомментированным.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
chiffa
Дата 22.3.2017, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



далее будет использоваться CustIdGet
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1190 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.