Вопрос

CreateSPParameter

Здравствуйте.



В скрипте вызывается 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

Как исправить эту ошибку ?

Нравится

2 комментария

См. обходные решения тут. Ещё попробуйте обновить 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;

Значения не возвращаются, остаются значения по умолчанию.

Как сделать, чтобы получать значения процедуры ?

Показать все комментарии