Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 1

Экспертиза по HANDLER

13.02.2016, 12:40. Показов 558. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех!

Поставлена задача по написанию процедуры, которая должна на выходе получать значение параметра P_RES:
0 - ошибка в процессе выполнения процедуры;
1 - товар обновлен;
2 - товар создан.

Для решения задачи добавил обработчик ошибок (DECLARE EXIT HANDLER FOR...).

Процедура:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
DELIMITER $$
CREATE PROCEDURE `IMPORT_GOODS`(IN `P_ID_GOODS` BIGINT, IN `P_NAME` VARCHAR(256), IN `P_ID_PRODUCER` BIGINT, OUT `P_RES` INT)
 
BEGIN  
    DECLARE P_ROW_EXISTS INT;
                
    DECLARE EXIT HANDLER FOR SQLEXCEPTION SET P_RES = 0;
    DECLARE EXIT HANDLER FOR SQLSTATE '02000' SET P_RES = 0;
    DECLARE EXIT HANDLER FOR SQLSTATE '23000' SET P_RES = 0;
    DECLARE EXIT HANDLER FOR 1452 SET P_RES = 0;  
 
    SET P_ROW_EXISTS = (SELECT COUNT(*) FROM goods WHERE 1 = 1 AND id_goods = P_ID_GOODS);
    
    IF P_ROW_EXISTS = 1 THEN
        BEGIN 
            UPDATE goods
            SET name = P_NAME,
                id_producer = P_ID_PRODUCER,
            WHERE 
                id_goods = P_ID_GOODS;
            SET P_RES = 1;    
        END;
    
    ELSE
        BEGIN 
            INSERT INTO goods (id_goods, name, id_producer)
            VALUES (
                P_ID_GOODS,
                P_NAME,
                P_ID_PRODUCER);
            SET P_RES = 2; 
        END;
    END IF;
END$$
 
DELIMITER ;

Проблематика:
- при выполнении процедуры с неправильными значениями параметров (например, с неверным значением P_ID_PRODUCER) не удается получить в ответе значение P_RES = 0. Получаю сообщение с ошибкой:


#1452 - Cannot add or update a child row: a foreign key constraint fails (`goods`, CONSTRAINT `goods_producer_r_1` FOREIGN KEY (`id_producer`) REFERENCES `producer` (`id_producer`)).

Вопрос:
Как заставить работать обработчик ошибок, чтобы получать в ответ не сообщение с ошибкой, а значение 0 ?

Добавлено через 17 часов 52 минуты
Проблема найдена и заключается в ошибке работы HANDLER внутри MySQL (замечалась на версии mysql 5.6. у хостинг-провайдера) - отловить данный хендлер нельзя.
Начиная с версии MySQL 5.7.2 данная ошибка устранена https://bugs.mysql.com/bug.php?id=68831.

Поставил mysql 5.7.11 и HANDLER отлавливается теперь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2016, 12:40
Ответы с готовыми решениями:

Напишите два класса Handler и Handler Controller, которые будут реализовывать поведение, описанное ниже
Приветствую всех! Нужна помощь в написании(решении) задачи, дело в том, что я начал изучать Java (есть определенные успехи) но в нашем...

Дактилоскопическая экспертиза
Дактилоскопическую экспертиза К сожалению, не смог найти нужного раздела для этой темы прошу прощения. В связи со сложившимся проблемами...

Лицензионная экспертиза Acer
Здавствуйте! Проблема такая: купил ноут Acer со страховкой от ВТБ-Страхование. Сломался. Сдал по страховке на ремонт. 2,5 месяца меня...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2016, 12:40
Помогаю со студенческими работами здесь

Обработка изображений - Тепловизионная экспертиза зданий
Доброго времени суток! Помогите, пожалуйста - подскажите литературу или примеры программ. Я пишу диплом на c# на тему...

Handler
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import...

Handler
Вот допустим обьект Handler был создан в активити(то есть в главном потоке). И мы запускаем через этот Handler (его метод post) кусок кода...

Handler timer
Добрый вечер. С помощью какого метода в Handler http://developer.android.com/reference/android/os/Handler.html(беда пока с английским) ,...

Handler JAVA EE
Всем привет. Прошу о помощи, разъяснить как правильно написать и использовать Handler в потоках, какие методы есть и т.д. Все что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru