|
ВыполнитьПакет() для СОМ-запроса
| ☑ |
0
Stim
11.06.13
✎
00:30
|
Запрос=Соединение.NewObject("Запрос");
Запрос.Текст="бла-бла";
РезультатЗапроса = Запрос.ВыполнитьПакет();
ТЗ = РезультатЗапроса[1];
Запрос выполняется, отладчик показывает, что результат запроса - это массив(СОМ массив) из нескольких элементов. И даже показывает эти элементы, если нажать F2 на РезультатЗапроса в отладчике.
Но код РезультатЗапроса[1] выдает ошибку индекса за пределами, хотя в массиве больше 2 элементов точно.
Тот же запрос, выполненный напрямую в самой базе(без СОМ) - работает без проблем.
Куда копать?
|
|
1
Dethmont
11.06.13
✎
00:36
|
Сообщить(РезультатЗапроса.ВГраница());
|
|
2
Dethmont
11.06.13
✎
00:37
|
ТЗ = РезультатЗапроса.Получить(1);
|
|
3
H A D G E H O G s
11.06.13
✎
00:38
|
(0) 1С не понимает обращение по индексу, COmОбъект - не коллекция. Стим, Стим.
|
|
4
Stim
11.06.13
✎
00:39
|
(2) [] - аналогично команде ПОлучить(). Но все равно спасибо, завтра попробую, хотя и не уверен, что это что-то изменит
|
|
5
Stim
11.06.13
✎
00:40
|
(3) и как быть? как получить результаты пакетных подзапросов?
|
|
6
Dethmont
11.06.13
✎
01:11
|
(4) Это не одно и тоже...
Получить(<Индекс>)
Примечание:
Применяется в случаях, когда использование оператора [] невозможно.
|
|
7
Dethmont
11.06.13
✎
01:23
|
На самом деле тут все логично.
Ты получаешь тот же массив только обернутый в СОМ и 1Ска в данном контексте не знает о наличии индексов у СОМОбъекта метод Get() позволяет получить значение по индексу внутри СОМ обертки
|
|
8
Stim
11.06.13
✎
09:09
|
Спасибо, действительно - Получить()
|
|