Имя: Пароль:
1C
1С v8
Помогите получить значение выполнения ХП из ADO
0 vlad71
 
27.02.13
13:00
В SQL есть хранимая процедура RN.spINT_utlGetOrderStatus_I2C, в которую передаем @ordID заказа и получаем статус заказа.
На TSQL это представлено так:
Declare @rc int
exec @rc= RN.spINT_utlGetOrderStatus_I2C 2640
select @rc

На 1с подулючаюсь и выполняю ее. Но как получить данные не понимаю.
......
Command = Новый COMОбъект("ADODB.Command");
   Command.ActiveConnection = ADO_Object;
   
   Command.CommandText ="RN.spINT_utlGetOrderStatus_I2C"
   Command.CommandType = 4;
   Param1 = Command.CreateParameter("@ordID", 3, 1, 50, ИдЗаказа);
   Command.Parameters.Append(Param1);
   RecordSet = Новый ComОбъект("ADODB.RecordSet");
   RecordSet = Command.Execute();

До этого момента все срабатывает.
Далее пытаюсь организовать цикл , выдает ошибку

Ошибка при вызове метода контекста (EOF)
   Пока RecordSet.EOF() = 0 Цикл
по причине:
Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.
1 vlad71
 
27.02.13
13:04
Возвращаемеы значения:

Значение    Описание
> 0            Статус
-1            Заказа с таким ordID не существует
2 774816
 
27.02.13
13:09
параметр нужно указать в хп, попробуй так
Command.CommandText = "RN.spINT_utlGetOrderStatus_I2C (@ordID)"
или так "RN.spINT_utlGetOrderStatus_I2C @ordID"
3 vlad71
 
27.02.13
14:12
Хранимая процедура отрабатывает все нормально, но только она возвращает не набор RecordSet