Пустой результат запроса MS SQL #807463


#0 by Amfiaray
Добрый день! Делаю запрос к базе MS SQL, вот код: Запрос отрабатывает без ошибок, но результат запроса пустой. Этот же текст запроса при выполнении в Management Studio выдает нормальный результат, не пустой. Подскажите как правильно сделать прямой запрос к SQL?
#1 by бомболюк
дело в датах наверное
#2 by бомболюк
сравнивай просто со строками вида '20171027'
#3 by Amfiaray
А что с датами не так? Для проверки ставил точку останова. брал текст запроса из СоединениеSQL.CommandText и выполнял его в Management Studio, результат был нормальный.
#4 by бомболюк
а просто больше сюрпризов тут ждать неоткуда.
#5 by Amfiaray
Не прокатило, результат тот же. Может я выборку как то не правильно обхожу? Вот код по заполнению ТЗ Таблица = Новый ТаблицаЗначений; Колонка в таблицу добавляется, а строки нет.
#6 by бомболюк
тут все верно
#7 by бомболюк
покажи новый код
#8 by Amfiaray
#9 by 1c_July
извините, что влезаю, хоть не совсем в теме, но возникли идеи: может какой-нибудь MoveFirst перед циклом? (если по аналогии execute - "выполнить", а потом еще надо "выбрать" - перед тем как ходить по записям в цикле) И еще попробовать ЗаписиSQL.count проверить.
#10 by бомболюк
я предполагал ты мне нормальный текст запроса тут засветишь, безо всяких склеек. давай просто захардкодим:
#11 by Amfiaray
MoveFirst выдал ошибку: Произошла исключительная ситуация (ADODB.Recordset): BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись.
#12 by Amfiaray
С таким запросом: select DISTINCT ReferenceID from vRefDocuments RD inner join vFactHistory FH ON FH.HistoryDocId = RD.ReferenceId inner join vFactTransport FT ON FT.FactHistoryId = FH.FactHistoryId AND FT.FactSource = 909237 where RD.DocTypeId = 1041302 and Результат тоже пустой.
#13 by 1dvd
попробуй прописать путь к базе в самом запросе
#14 by Amfiaray
Может быть проблема в том что в запросе используются и базовые таблицы и представления?
#15 by бомболюк
а в Management Studio он не пустой?
#16 by Amfiaray
а в чем разница? запрос ведь выполняется, колонки в выборки есть, а сток нет.
#17 by 1dvd
не помню. Давно занимался этим, но делал именно так
#18 by Amfiaray
нет не пустой, 119 записей выводит
#19 by бомболюк
так не бывает. может базы или сервера разные в консоли и запросе из 1С?
#20 by Amfiaray
всё одинаково.
#21 by Amfiaray
Пробовал добавлять эту базу как внешний источник данных, но почему то таблицы с представлениями были пустые.
#22 by Amfiaray
Потом добавлял хранимую процедуру с этим запросом, также в Management Studio всё отрабатывает отлично, а при вызове из 1с пусто.
#23 by SSSSS_AAAAA
Убрать use [traffic] и добавить название базы перед таблицами. ТО есть traffic.vRefDocuments и т.д.
#24 by Amfiaray
Не помогло, по прежнему пустой результат
#25 by Тихий омут
чудес не бывает. отключай условия в запросе, найдёшь некорректное
#26 by Rokford
Может не та ситуация, но похожа. Я в свое время намучился с получением набора данных, пока не указал тип курсора. Попробуй, может поможет (именно = 3).
#27 by Amfiaray
Вот запрос совсем без условий: "SELECT DISTINCT ReferenceID from [Traffic].[dbo].vRefDocuments RD |inner join [Traffic].[dbo].vFactHistory FH ON FH.HistoryDocId = RD.ReferenceId Результат всё равно пустой.
#28 by Amfiaray
добавил ЗаписиSQL.CursorType = 3; Результат так же пустой.
#29 by Тихий омут
Двигайся дальше. Убери джойн из этой выборки - результат пустой? Если да, то не туда стучишься - не в ту базу. И вот это - [Traffic].[dbo] - мне оччень не нравится, эти вещи мне несколько лет назад (при скрещивании 7.7 и OLAP) основательно крови попили, постарайся от них избавиться - ты ведь при подключении указываешь точно имя базы, в запросе его дублировать ни к чему.
#30 by SSSSS_AAAAA
В 1с вы что-то делаете не так, как SSMS. Потому у вас и результата нет ни одним из способов. Ищите. Не тот сервер?
#31 by Rokford
Почему используешь объект command а не RecordSet? Если получилось создать ХП, - попробуй вызывать ее
#32 by LuciferArh
А почему цикл Пока ЗаписиSQL.EOF = 0 Цикл Я бы написал Пока НЕ ЗаписиSQL.EOF Потому что EOF - EndOfFile, то есть достигнут конец файла, и оно булево.
#33 by SSSSS_AAAAA
Кстати, да. Сommand для запуска ХП и подобного. Но это так, мелочи. На внешние источники данных не влияющие. И потому не главная причина.
#34 by Rokford
Вот из рабочей обработки функция, может поможет...
#35 by Amfiaray
Спасибо, вроде разобрался с причиной проблемы, не хватает прав у пользователя SQL, только теперь не могу разобраться с правами ((
#36 by SSSSS_AAAAA
И что с правами?
#37 by Amfiaray
Не понятно что с правами, select на каких то таблицах нормально отрабатывает? а на каких то пустой результат№
#38 by бомболюк
возможно во вьюхе режется
#39 by SSSSS_AAAAA
Ну так надо смотреть прав этого юзера на все используемые таблицы. Они ведь на каждую таблицу отдельно могут быть.
#40 by Yuri 83
Ну смещение дат же! Прибавь пару тысяч лет.
#41 by Amfiaray
сказал админам которые базу обслуживают чтобы с правами разобрались? а пока выпросил у них пароль от sa
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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