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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает хранимая функция, что не так? 
:(
    Опции темы
ki6opr
  Дата 16.7.2008, 12:25 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго всем времени суток.

столкнулся вот с такой проблемой, написал вроде бы все верно, но не работает. Если же в теле функции работаю со всеми входящими параметрами как с глобальными (например @manager_email_in 
Код

SELECT count(jccrm_managers.manager_email)
FROM jccrm_managers WHERE
jccrm_managers.manager_email = @manager_email_in
INTO manager_count_local;        
RETURN manager_count_local;
), 
то все ок , тоесть данная "урезаная" функция вернет количество найденных записей. самое интересное что функции без параметров работают нормально, но при этом не работает ни одна из функций с параметрами. собственно вопрос либо где у меня ошибка в ДНК  smile  либо может быть здесь что то другое (может сервер админы не до собирали например ? при том что смотрел в других базах функции и процедуры написанн также, без изврашений с глобальными переменными)  
вот оригинал
Код

CREATE DEFINER = 'root'@'%' FUNCTION `jccrm_manager_add`(manager_fio_in VARCHAR(100), manager_email_in VARCHAR(255), manager_password_in VARCHAR(255), manager_phone_in CHAR(10))
    RETURNS int(11)
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT 'add new maneger to db'
BEGIN
DECLARE manager_count_local int;
DECLARE credit_account_number_local char(10);
DECLARE current_personal_account_local int;
DECLARE current_credit_account_local int;
DECLARE manager_id_local int;

SELECT count(jccrm_managers.manager_email) INTO manager_count_local
FROM jccrm_managers 
WHERE jccrm_managers.manager_email = manager_email_in;     

IF (manager_count_local > 0) THEN
  RETURN 1;
ELSE
SELECT jccrm_generate_number() INTO credit_account_number_local;

INSERT jccrm_personal_account SET credit_account_number =
credit_account_number_local, credit_account_sum= 0;
INSERT INTO current_personal_account_local VALUES (LAST_INSERT_ID());

INSERT jccrm_credit_account SET credit_account_number =credit_account_number_local, credit_account_sum= 0;

INSERT INTO current_credit_account_local VALUES (LAST_INSERT_ID());

INSERT INTO jccrm_managers SET bonus_account_id =0, 
personal_account_id= current_personal_account_local, 
credit_account_id =current_credit_account_local, manager_email = manager_email_in,
manager_password = PASSWORD(manager_password_in), manager_fio =manager_fio_in, manager_create_date = NOW(),  manager_archive_date=NULL, manager_phone = manager_phone_in;

INSERT INTO manager_id_local VALUES (LAST_INSERT_ID());  
  RETURN manager_id_local;  
END IF;
END;

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


 




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


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

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