SQL Запросы из 1С, ошибка:Операция не допускается, если объект закрыт. #795874


#0 by ig0z
После добавление временной таблицы и левого соединения к Основному запросу (много строк) начала выскакивать ошибка, указанная в заголовке. Как-то не понятно почему, до этого использовал временные таблицы не было такого ...
#1 by spock
1. Проверка на наличие временной таблицы - отдельный запрос (CommandType = 8); 2. Создание врем. таблицы - отдельный запрос (CommandType = 8); 3. Наполнение врем. таблицы и выборка из нее - отдельный запрос (CommandType = 1). Connection = Новый COMОбъект("ADODB.Connection"); Command.CommandText = "SET NOCOUNT ON а далее с новой строки запрос без возврата результатов";
#2 by spock
+1 Перебор результата из recordset:
#3 by spock
А вообще, лучше sql-код завернуть в хранимую процедуру и дергать ее из 1С с помощью Внешних источников данных.
#4 by Неверный Параметр И
Достаточно добавить set nocount on. Поставщик mssql вполне позволяет выполнять батчи через ado. И попробуй отладить запрос в managment studio, возможно он сыпеь варнингами о обработке null, тогда к set nocont on надо добавить set ansi warnings off
#5 by spock
Запросы на проверку и создание врем. таблиц должны разноситься.
#6 by Неверный Параметр И
Зачем?
#7 by spock
Возможно, это рудиментный опыт. Помниться на sql2000 были грабли, когда multi-statement запрос компилировался целиком и метаданные считывались до выполнения запроса, и не актуализировались в процессе исполнения цепочки инструкций.
#8 by ig0z
спасибо но достаточно было с начала запроса поставить 'SET NOCOUNT ON' и всё заработало
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С