Выполнение хранимой процедуры с помощью ADO.

Попытался выполнить вот такой вот код:

var ADOData = Services.GetNewItemByUSI('ado_SendMailSP');
SetParameterValue(ADOData.Parameters, 'vRecipients', vRecipients);
SetParameterValue(ADOData.Parameters, 'vCopy_Recipients', vCopy_Recipients);
SetParameterValue(ADOData.Parameters, 'vBlind_Copy_Recipients', vBlind_Copy_Recipients);
SetParameterValue(ADOData.Parameters, 'vSubject', vSubject);
SetParameterValue(ADOData.Parameters, 'vMessage', vMessage);
ADOData.Execute();

в ado_SendMailSP (ADOCommand) написал:

exec dbo.sp_SendMail :vRecipients, :vCopy_Recipients, :vBlind_Copy_Recipients, :vSubject, :vMessage

параметры определил, все они строковые. Строку подключения указал. При попытке выполнить ADOData.Execute(); вылетает ошибка "Неправильно определен объект Parameter. Предоставлены несовместимые или неполные сведения".
В чем может быть проблема?

Нравится

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

Параметры vCopy_Recipients и vBlind_Copy_Recipients практически всегда имеют значение NULL.
Попробовал вместо значений параметров vCopy_Recipients и vBlind_Copy_Recipients подставить константы (реальные почтовые адреса) и всё сработало.
Как быть?

Решил вот таким способом:

if (vBlind_Copy_Recipients == null) {vBlind_Copy_Recipients = ''}
Показать все комментарии