Вызов MySql функции удаленно не удается - PullRequest
0 голосов
/ 29 сентября 2010

Когда я пытаюсь вызвать пользовательские функции через удаленное соединение, это выдает ошибку.

Дело в том, что запрос без каких-либо функций работает нормально для удаленного соединения.

Так как я могу вызывать функцииудаленно.

Запрос: select jobcardid,sonno,sonnumber,getSalesOrderCountByStatus('completed',1)as finished,getSalesOrderCountByStatus('pending',sonnumber)as inprocess,getSalesOrderCountByStatus('',1)as total from tblm_jobcard where sonnumber like 'A121';

Функция:

CREATE DEFINER=root@localhost FUNCTION getSalesOrderCountByStatus(v_status varchar(12), v_salesorderid integer) RETURNS int(11)
    READS SQL DATA
BEGIN
DECLARE cnt integer(10);
if(length(v_status)>0) then 
select count(1) into cnt from tblm_jobcard where sonno = v_salesorderid and status = v_status;
else
select count(1) into cnt from tblm_jobcard where sonno = v_salesorderid ;
end if;
RETURN cnt;

При удаленном соединении ничего не получается, просто зависает.

1 Ответ

0 голосов
/ 29 сентября 2010

попробуй

DELIMITER $$

CREATE FUNCTION getSalesOrderCountByStatus(v_status VARCHAR(12), v_salesorderid INTEGER) RETURNS INT(11)
BEGIN
DECLARE cnt INTEGER(10);
IF(LENGTH(v_status)>0) THEN 
SELECT COUNT(1) INTO cnt FROM tblm_jobcard WHERE sonno = v_salesorderid AND STATUS = v_status;
ELSE
SELECT COUNT(1) INTO cnt FROM tblm_jobcard WHERE sonno = v_salesorderid ;
END IF;
RETURN cnt;
END$$
DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...