Как получить параметр MySQL OUT хранимой процедуры в качестве переменной в Javascript? - PullRequest
0 голосов
/ 01 мая 2020

Отказ от ответственности; мой фон C#, поэтому я не знаком с JavaScript больше, чем на поверхностном уровне; однако сегодня я просматривал некоторый код с одним из наших разработчиков, и он получал странное поведение «возвращаемых результатов», сливающихся с уже существующими возвращаемыми результатами. Я был очень удивлен, увидев, что каждый JavaScript пример вызова хранимой процедуры использует глобальную переменную на стороне MySQL для хранения параметра out! Это поражает меня, и IMO - это большое «нет, нет» по отношению к написанию кода. Возьмите приведенный ниже пример:

exports.updateRasSql = 'CALL update_ras_data(?, ?, @out_result, @out_result_value);

Суть в том, что мы НЕ хотим присваивать переменные параметра OUT глобальной переменной MySQL. Мы хотим, чтобы значения OUT присваивались внутренним переменным JavaScript, но каждый раз, когда мы пытаемся это сделать (используя var или let в качестве определителя), MySQL возвращает:

Error: ER_SP_NOT_VAR_ARG: OUT or INOUT argument 3 for routine empowercrm_main.update_ras_data is not a variable or NEW pseudo-variable in BEFORE trigger

Итак, вот вопрос: как мы называем MySQL хранимую процедуру с узла / JavaScript и чтобы она возвращала переменные OUT внутренним JavaScript переменным, а не MySQL глобальным переменным?

1 Ответ

0 голосов
/ 01 мая 2020

Вы должны вернуть набор результатов (сделать запрос в процедуре) вместо использования OUT -переменных. Единственный способ получить значение OUT-переменной - это выбрать ее после выполнения процедуры. Проще всего обработать набор результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...