Переключение на Главную Страницу Страницы: [1] 2 3 4 ОтправитьПечать
Очень популярная тема (более 25 ответов) Странное поведение прямого запроса (число прочтений - 9184 )
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Странное поведение прямого запроса
12. Декабря 2011 :: 06:18
Печать  
Добрый день. Проблема следующего рода: SQL 2000, между двумя скульными базами 1С идет перенос данных посредством прямого запроса, сначала переносятся справочники, потом вводятся в базу-приемник новые документы. Если справочники переносятся благополучно, то с записью в таблицы документа и журнала творится что-то непонятное: метод ВыполнитьИнструкцию(), который выполняет запрос на добавление новых записей в базу-приемник при выполнении возвращает -1 (хотя в случае со справочниками результат выполнения метода = количество добавленных в базу-приемник записей).  При этом запись в таблицы _1SJourn, DT и DH ПРОИЗВОДИТСЯ.
Это не было бы такой серьезной проблемой, если бы не одно "но": при последующем переносе справочников посредством прямого запроса метод ВыполнитьИнструкцию() тоже начинает почему-то возвращать -1! Потом база-источник, в которой запущена обработка выгрузки, вообще зависает и ничего не делается. Такое впечатление, что после прямой записи в таблицы журнала и документа где-то что-то перелинивает и сервер начинает глючить. Пытался искать, но описания этой проблемы нигде так и не нашел. Прошу Вас помочь. Заранее благодарен.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Странное поведение прямого запроса
Ответ #1 - 12. Декабря 2011 :: 06:29
Печать  
set nocount on
  

1&&2&&3
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Странное поведение прямого запроса
Ответ #2 - 12. Декабря 2011 :: 06:36
Печать  
trad писал(а) 12. Декабря 2011 :: 06:29:
set nocount on


Не-а, не алё  Печаль Тот же самый результат.
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Странное поведение прямого запроса
Ответ #3 - 12. Декабря 2011 :: 06:48
Печать  
Хе-хе! Прикол: по  ходу, надо было не 'set nocount on', а 'set nocount OFF'  Смех
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Странное поведение прямого запроса
Ответ #4 - 12. Декабря 2011 :: 08:19
Печать  
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Странное поведение прямого запроса
Ответ #5 - 12. Декабря 2011 :: 08:24
Печать  
Это, табличные подсказки (WITH ) не используешь случаем в запросе ?
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Странное поведение прямого запроса
Ответ #6 - 12. Декабря 2011 :: 10:13
Печать  
Нет. Просто потому, что не в курсе, что это такое  Смех
Это типа WITH NOLOCK?  Подмигивание Или имеется в виду та штуа, которая позволяет замутить в запросе что-то типа рекурсии? В любом случае, у меня этого нет.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Странное поведение прямого запроса
Ответ #7 - 12. Декабря 2011 :: 10:24
Печать  
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Странное поведение прямого запроса
Ответ #8 - 13. Декабря 2011 :: 01:20
Печать  
Eprst писал(а) 12. Декабря 2011 :: 10:24:


Благодарю!  Подмигивание Почитаем...
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Странное поведение прямого запроса
Ответ #9 - 13. Декабря 2011 :: 05:09
Печать  
А может всё проще? Может надо не ВыполнитьИнструкцию(), а Выполнить()?
ВыполнитьИнструкцию() же ждёт набор данных, и ломается при отсутствии.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Странное поведение прямого запроса
Ответ #10 - 13. Декабря 2011 :: 05:38
Печать  
ADirks писал(а) 13. Декабря 2011 :: 05:09:
ВыполнитьИнструкцию() же ждёт набор данных, и ломается при отсутствии.

да ну???
ничего не путаешь?
  

1&&2&&3
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Странное поведение прямого запроса
Ответ #11 - 13. Декабря 2011 :: 05:45
Печать  
немножко да...
Цитата:
Возвращает: тип: ТаблицаЗначений, СписокЗначений, ИндексированнаяТаблица или наследник от любого из них, Число. Объект с результатом запроса, или число - количество обработанных строк.

но я бы всё же для таких запросов Выполнить() использовал
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Странное поведение прямого запроса
Ответ #12 - 13. Декабря 2011 :: 05:51
Печать  
Видите ли, мне это необходимо для трассировки: по мере выполнения обработки выводить юзеру, сколько записей было перенесено в базу-приемник. Собственно, если работает, зачем менять? Подмигивание
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Странное поведение прямого запроса
Ответ #13 - 13. Декабря 2011 :: 06:00
Печать  
тогда напиши в конце запрос явно
SELECT @@RowCount RowCount
и используй ВыполнитьСкалярный()

ещё предположение: в процессе выполнения SQL выдаёт warning'и, и от этого ВыполнитьИнструкцию() падает. Проверить можно выполнив sql-скрипт в QueryAnalyzer'е.
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Странное поведение прямого запроса
Ответ #14 - 13. Декабря 2011 :: 06:05
Печать  
В-общем-то, проблема уже решилась  Улыбка 'set nocount off' - в этом всё было дело.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 4
ОтправитьПечать