|
ADODB. Как получить выборку из многострочного запроса? |
☑ |
0
DTX 4th
03.10.17
✎
18:12
|
Т.е. есть запрос вида
CREATE TABLE #temp (...)
INSERT INTO #table EXEC MySuperProc
SELECT * FROM #temp
DROP TABLE #temp
Пытаюсь так:
RS = Новый COMОбъект("ADODB.Recordset");
RS.Open(ТекстЗапроса, Соединение);
Пока RS.EOF() = 0 Цикл
Стр = ТЗ.Добавить();
Получаю ошибку:
Ошибка при вызове метода контекста (EOF)
Пока RS.EOF() = 0 Цикл
по причине:
Произошла исключительная ситуация (ADODB.Recordset): Operation is not allowed when the object is closed.
|
|
1
Филиал-msk
03.10.17
✎
18:41
|
Вот уже даже Ливингстар тетрадку себе завел и свои решения туда записывает. Но же мы гордые, мы крутые, мы в поиск не хотим, мы хотим здесь и сейчас.
Ты уже спрашивал это вопрос и получал ответ. Примерно 12 мая этого года.
|
|
2
DTX 4th
03.10.17
✎
18:52
|
(1) Свои решения храню в OneNote, очень удобно.
(2) 12 мая был другой вопрос. Там INSERT возвращал количество строки, и меня спасло SET NOCOUNT ON. Просто способа как выполнить пакетный запрос с выборками я так и не нашёл.
|
|
3
Филиал-msk
03.10.17
✎
18:54
|
(2) А тут у тебя INSERT возвращает температуру на Марсе в зависимости от периода запроса. Ок.
|
|
4
DTX 4th
03.10.17
✎
19:20
|
(3) Ок, не додумал (CREATE и DROP мешали), спасибо.
Осталось узнать, есть ли простой способ запилить два разных селекта в одном запросе.
|
|
5
Филиал-msk
03.10.17
✎
19:22
|
(4) В смысле "получить в результате две выборки"?
|
|
6
DTX 4th
03.10.17
✎
19:27
|
(5) Как ВыполнитьПакет() в 1С.
Запрос = `
SELECT * FROM t1;
SELECT * FROM t2;
SELECT 123;
`;
|
|
7
Филиал-msk
03.10.17
✎
19:38
|
(6) Вообще говоря, зависит от провайдера ADO. Возможно он такой возможности не предоставляет вовсе.
У традиционного MSSQL, например, там может быть мешанина из закрытых наборов (которые как раз описывают соответствуют возвращаемое число строк, которые ты убрал SET NOCOUNT ON) и данных.
Для получения последовательных выборок используется NextRecordset()
|
|
8
mehfk
03.10.17
✎
19:39
|
|
|
9
DTX 4th
03.10.17
✎
19:41
|
Оно, спасибо!
|
|
10
Филиал-msk
03.10.17
✎
19:43
|
(9) Положи спасибо в OneNote (:
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший