Вызов хранимой процедуры из 1с через ado
Добрый день!
У меня вызвать процедуру получилось, но как обработать данные я не очень разобралась.
Сейчас ругается на Пока RecordSet.EOF() = 0 Цикл
ошибка такая:
{Обработка.ПередачаИзмененийBTS.Форма.Форма.Форма(103)}: Ошибка при вызове метода контекста (EOF)
Пока RecordSet.EOF() = 0 Цикл
по причине:
Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.
код такой:
Command = Новый COMObject("ADODB.Command");
Command.ActiveConnection = ADOConnection;
Command.CommandText = "PR_Print_SummaryStatement";
Command.CommandType = 8;
ParamOrg = Command.CreateParameter("@OrganizationID", 72, 1, 0, "73167096-974F-495E-9CED-6885E07408AB");
Command.Parameters.Append(ParamOrg);
//
////Param3 = Command.CreateParameter("@DateStart", 7, 1, 4, формат(Дата(2012,03,01),"ДФ=yyyy-MM-dd"));
Param3 = Command.CreateParameter("@DateStart", 7, 1, 4, Дата(2012,03,01));
Command.Parameters.Append(Param3);
////Param2 = Command.CreateParameter("@DateEnd", 7, 1, 4, Формат(Дата(2012,03,20),"ДФ=yyyy-MM-dd"));
Param2 = Command.CreateParameter("@DateEnd", 7, 1, 4, Дата(2012,03,20));
Command.Parameters.Append(Param2);
//
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
счетчик = счетчик + 1;
Сообщить(счетчик );
RecordSet.MoveNext();
КонецЦикла;
У меня вызвать процедуру получилось, но как обработать данные я не очень разобралась.
Сейчас ругается на Пока RecordSet.EOF() = 0 Цикл
ошибка такая:
{Обработка.ПередачаИзмененийBTS.Форма.Форма.Форма(103)}: Ошибка при вызове метода контекста (EOF)
Пока RecordSet.EOF() = 0 Цикл
по причине:
Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.
код такой:
Command = Новый COMObject("ADODB.Command");
Command.ActiveConnection = ADOConnection;
Command.CommandText = "PR_Print_SummaryStatement";
Command.CommandType = 8;
ParamOrg = Command.CreateParameter("@OrganizationID", 72, 1, 0, "73167096-974F-495E-9CED-6885E07408AB");
Command.Parameters.Append(ParamOrg);
//
////Param3 = Command.CreateParameter("@DateStart", 7, 1, 4, формат(Дата(2012,03,01),"ДФ=yyyy-MM-dd"));
Param3 = Command.CreateParameter("@DateStart", 7, 1, 4, Дата(2012,03,01));
Command.Parameters.Append(Param3);
////Param2 = Command.CreateParameter("@DateEnd", 7, 1, 4, Формат(Дата(2012,03,20),"ДФ=yyyy-MM-dd"));
Param2 = Command.CreateParameter("@DateEnd", 7, 1, 4, Дата(2012,03,20));
Command.Parameters.Append(Param2);
//
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
счетчик = счетчик + 1;
Сообщить(счетчик );
RecordSet.MoveNext();
КонецЦикла;
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Выяснила что проблема в параметрах. Если процедура без параметров то вызывается и выдает данные. Все супер.
Может подскажите что написано не так в передаче параметров?
нужно передать строку. Про даты я пока не спрашиваю.
уже писала и
ParamOrg = Command.CreateParameter("@OrganizationID", 129, 1, 36, "73167096-974F-495E-9CED-6885E07408AB");
все равно не помогает.
Может подскажите что написано не так в передаче параметров?
нужно передать строку. Про даты я пока не спрашиваю.
уже писала и
ParamOrg = Command.CreateParameter("@OrganizationID", 129, 1, 36, "73167096-974F-495E-9CED-6885E07408AB");
все равно не помогает.
Может кому пригодится
параметры можно передавать так:
ТекстЗапроса = "exec PR_Print_SummaryStatement '" + "73167096-974F-495E-9CED-6885E07408AB"+"','"+Param3+"','"+ Param2+"'";
Command.CommandText = ТекстЗапроса;
RecordSet = Command.Execute();
где в текст запроса передается:
"exec ИмяХранимойПроцедуры, парам1, парам2, парам3"
параметры можно передавать так:
ТекстЗапроса = "exec PR_Print_SummaryStatement '" + "73167096-974F-495E-9CED-6885E07408AB"+"','"+Param3+"','"+ Param2+"'";
Command.CommandText = ТекстЗапроса;
RecordSet = Command.Execute();
где в текст запроса передается:
"exec ИмяХранимойПроцедуры, парам1, парам2, парам3"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот