Имя: Пароль:
1C
1С v8
v8: SQL выборка результата Хранимой процедуры
0 f_fobos
 
27.12.11
12:25
ДД!

Есть код:
   
ADODBCom = Новый COMОбъект("ADODB.Command");
ADODBCom.ActiveConnection = СоединениеADO;    
ADODBCom.CommandType = 4;
ADODBCom.CommandText = "myProcedure";

парамТек = ADODBCom.CreateParameter("@My", 3, 1, , 20);
ADODBCom.Parameters.Append(парамТек);

выборка = ADODBCom.Execute();

Пока ЗаписиSQL.EOF=0 Цикл
   ....
КонецЦикла

получаю: "Произошла исключительная ситуация (ADODB.Recordset): Operation is not allowed when the object is closed."

почему рекордсет закрытый, если в менеджмент студио процедура возвращает непустой результат (некоторое количество записей)?
1 f_fobos
 
27.12.11
12:27
допущена ошибка, имелось в виду: "Пока выборка.EOF=0 Цикл"
2 filinsv
 
27.12.11
12:40
...
ЗаписиSQL = Новый ComObject("ADODB.RecordSet");
ЗаписиSQL = ADODBCom.Execute();
Пока ЗаписиSQL.EOF = 0 Цикл
...
3 SergeyKVM
 
27.12.11
12:49
(0) а смысл в этом какой? Хранимая процедура выполняется быстрее чем запрос? или просто для конспирации?
4 rs_trade
 
27.12.11
12:52
(3) если часто вызывается то быстрее. вам объяснить смысл процедур и функций?
5 f_fobos
 
27.12.11
12:57
ну... дареному коню, как говориться.

Вопрос закрыт: проблема с правами доступа. Причем при отладке в К. Аналайзере, результат _возвращается_, с ошибкой мессаджах об отсутствии доступа на определенную таблицу (т.е. не получаю данные по 1 из колонок в резалте)
6 f_fobos
 
27.12.11
12:58
(2) такой код тоже не работал
7 МишельЛагранж
 
27.12.11
15:45
че-то я не понял.... а кто в SQL вам заблокировал доступ к ТАБЛИЦЕ 1с-а??? у вас сисадмин провокатор?
8 f_fobos
 
27.12.11
16:07
(7) а кто сказал что это база 1С? Это сторонняя база. Дали ХП для получения определенных данных и ограничили прямой доступ к данным в таблицах. В принципе, нормальный метод...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший