Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADODB.Command
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
onsamuy
Доброго дня. На сервере sql есть хранимая процедура. При попытке выполнения возникает ошибка

Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Ошибка синтаксиса или нарушение прав доступа.

Что я делаю:

1. Создаю соединение с базой
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.Open("Provider=SQLOLEDB.1;Password=DE1;Persist Security Info=True;User ID=1c;Data Source=ELEKS\DOCTORELEKSSQL");


2. Создаю комманду и передаю хранимую процедуру
Комманда = Новый COMОбъект("ADODB.Command");     
Комманда.CommandText ="exec spReport1cExport @FilterXML=N'<Filter><StartDate>2012-12-01T00:00:00</StartDate>
                                                                  <EndDate>2014-12-31T23:59:59</EndDate><AccountTypes><value>2</value><value>84</value></AccountTypes>
                                                                  <CashFilter><value>CRD</value></CashFilter></Filter>', @Login='1c', @DoApply=1";

Комманда.ActiveConnection = Соединение;
Комманда.CommandType = 4;

// Вызываем процедуру на выполнение
РекордСет = Комманда.Execute();
  
Пока РекордСет.EOF = 0 Цикл
      
       //--------------перебор записей

        РекордСет.MoveNext();      
КонецЦикла;


На строке РекордСет = Комманда.Execute(); вываливается ошибка
Ошибка синтаксиса или нарушение прав доступа.


Причем если не задаю CommandType (вроде по мануалу параметр опциональный, влияет только на производительность), Execute() проходит, но уже на переборе
Пока РекордСет.EOF = 0 Цикл
выдает ошибку
"Операция не допускается если объект закрыт".
logist
Цитата
CommandType = 4;

Есть подозрение что 2, 4 и 8 не работает через ADODB.

Можете еще попробовать добавить:
Комманда.CommandText ="storedproc";

onsamuy
Это капец. Люди пробовали на сервере непосредственно выполнять мою строку, которую я передаю в CommandText, нормально возвращает. OLE рулит кароч...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.