Здравствуйте.
В скрипте вызывается sql процедура и один из параметров:
CreateSPParameter(Parameters, 'ErrorDescription', sdtString, null);
Parameters.ItemsByName('ErrorDescription').ParamType = 1; //output
В sql процедуре этот параметр имеет тип: @ErrorDescription as nvarchar(1000) output
При вызове из скрипта выводит такую ошибку: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 11 (""): Data type 0xE7 has an invalid data length or metadata length
Как исправить эту ошибку ?
Нравится
См. обходные решения тут. Ещё попробуйте обновить Terrasoft до последней версии.
Создала ADOCommand с входящими и выходящими параметрами.
В Текст SQL написала exec dbo.pr_procName :param_1, :param_2, ... , :param_(n-1) output, :param_n output
В скрипте написала:
var ADOCommand = Services.GetNewItemByUSI('название ADOCommand');
ADOCommand.Parameters.ItemsByName('param_1').Value = значения_1;
ADOCommand.Parameters.ItemsByName('param_2').Value = значения_2;
...
ADOCommand.Parameters.ItemsByName('param_(n-1)').Value = 0; // default value
ADOCommand.Parameters.ItemsByName('param_n').Value = ""; // default value
ADOCommand.Execute();
После чего надо получить возвращаемое значение:
var Value1 = ADOCommand.Parameters.ItemsByName('param_(n-1)').Value;
var Value2 = ADOCommand.Parameters.ItemsByName('param_n').Value;
Значения не возвращаются, остаются значения по умолчанию.
Как сделать, чтобы получать значения процедуры ?