Отказ от ответственности; мой фон 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 глобальным переменным?