2015-07-17 5 views
1

Я сделал хранимую процедуру.MySQL Различные результаты на WebService Call и WorkBench Call

Когда я протестировал его с помощью workbench call, он работал хорошо. но если я назвал это внутри вызова webservice, я получил 1217 результат. (определено в процедуре)

myTable состоит из 3 столбцов (user_no, index, count) , и эта процедура предназначена для вычитания нескольких строк.

DECLARE _affected_count INT DEFAULT 0; 

IF (o_ouput1 < i_input1) THEN 
    SET o_result = 1211; 
    LEAVE proc_body; 
ELSEIF (i_input1 > 0) THEN 
    SET _affected_count = _affected_count + 1; 
END IF; 

IF (o_ouput2 < i_input2) THEN 
    SET o_result = 1212; 
    LEAVE proc_body; 
ELSEIF (i_input2 > 0) THEN 
    SET _affected_count = _affected_count + 1; 
END IF; 

// То же самое для INPUT3 ~ INPUT6

UPDATE myTable 
    SET count = CASE WHEN index = 1 AND i_input1 > 0 AND count >= i_input1 THEN count - i_input1 
        WHEN index = 2 AND i_input2 > 0 AND count >= i_input2 THEN count - i_input2 
        WHEN index = 3 AND i_input3 > 0 AND count >= i_input3 THEN count - i_input3 
        WHEN index = 4 AND i_input4 > 0 AND count >= i_input4 THEN count - i_input4 
        WHEN index = 5 AND i_input5 > 0 AND count >= i_input5 THEN count - i_input5 
        WHEN index = 6 AND i_input6 > 0 AND count >= i_input6 THEN count - i_input6 
        ELSE count END 
    WHERE user_no = i_user_no AND index IN (1, 2, 3, 4, 5, 6); 
IF (ROW_COUNT() <> _affected_count) THEN 
    SET o_result = 1217; 
    LEAVE proc_body; 
END IF; 

Проблема есть .. Если я называю эту процедуру в верстаке, он хорошо работает.

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

Есть ли кто-нибудь, кто может это объяснить?

ответ