AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.07.2008, 17:13   #1  
Oloops is offline
Oloops
Участник
Аватар для Oloops
 
4 / 10 (1) +
Регистрация: 02.02.2005
Адрес: Москва
Как преобразовать запрос в SQL-инструкцию
Отчет реализован на базе класса RunBaseReport. Есть интерес преобразовать запрос сформированный пользователем в T-SQL-инструкцию и передать ее серверу. А точнее интересует не весь запрос, а хотя бы секция Ranges. Метод ToString формирует строку, но SQL сервер, естественно, ее не понимает. Интересует есть ли вообще способ получить подобный результат, или придется копать в другом месте
Старый 07.07.2008, 17:23   #2  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Включите трассировку SQL запросов. Сервис -> Параметры -> Закладка SQL -> Галочка трассировка SQL и еще одну на выбор, например Infolog. А вот это
Цитата:
Есть интерес преобразовать запрос сформированный пользователем в T-SQL-инструкцию и передать ее серверу.
от лукавого.
Старый 07.07.2008, 17:25   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Есть интерес преобразовать запрос сформированный пользователем в T-SQL-инструкцию
А зачем такое счастье? Аксапта после ваших модификаций уже не в состоянии сделать это самостоятельно в отцетах ?
Ставьте задачу конкретнее.
Старый 07.07.2008, 18:06   #4  
Oloops is offline
Oloops
Участник
Аватар для Oloops
 
4 / 10 (1) +
Регистрация: 02.02.2005
Адрес: Москва
щас попробую конкретизировать. преимущество ранбейсрепорта (для меня) состоит в том, что пользователь может задавать фильтры к любым полям таблицы, в зависимости от своих фантазий, т.е. мне не нужно формировать диалог с жестким списком полей. беда в том, что запрос через класс Connection возвращает результат быстрее чем queryrun. т.е задача состоит в том, чтобы критерии стандартного Query преобразовать в синтаксис T-sql, выполнить их на сервере и вернуть в резултСет. хочется оптимизировать репорт и при этом сохранить преимущества стандартного класса в выборе критериев. может я действительно занялся ерундой, в таком случае, может подскажете альтернативный способ решения проблемы оптимизации
Старый 07.07.2008, 18:11   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Думаю, вы занялись "ерундой". Альтернативный способ? Пожалуйста. Включить мониторинг запросов. Посмотреть, какой запрос "тормозит". Понять почему он так себя ведет. По возможности исправить. При необходимости - повторить.

http://axapta.mazzy.ru/lib/querytuning/
Старый 07.07.2008, 18:19   #6  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
ИМХО, отчет так просто не оптимизировать, ввиду того что условия в запросе могут быть самыми разнообразными, на все поля индексов не наделать, только если провести мониторинг наиболее часто повторяющихся условий
Старый 07.07.2008, 20:06   #7  
Oleksandr is offline
Oleksandr
Участник
Аватар для Oleksandr
 
68 / 17 (1) ++
Регистрация: 19.03.2005
Адрес: Киев
Только захотел написать похожий вопрос а тут уже обсуждают.

У меня следующая задача: пользователь задает произволный range на диалоге runbasebatch по полю (типу) InventTable.PrimaryVendorID, но условия выборки стоит так: выбрать записи, у которых InventTable.PrimaryVendorID попадает в рендж, если нет - то искать в Торговых соглашениях (или как там по-русски trade agreements .

Так вот, пользователский рендж-то я вытащить могу из квери, но как его исползовать в сложном запросе (дже не Т-, а аксаптовский сиквел)? select ... where InRange(..) не дозволено синтаксисом .

Думаю, не я первый с такой пробелмой...

Спасибо
__________________
--
regards, Oleksandr
Старый 07.07.2008, 20:38   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Oleksandr Посмотреть сообщение
но как его исползовать в сложном запросе (дже не Т-, а аксаптовский сиквел)? select ... where InRange(..) не дозволено синтаксисом
Использовать не select, а query.
Теги
документация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Произвольный SQL-запрос listener DAX: База знаний и проекты 26 26.07.2016 09:31
Поймать SQL запрос при формировании отчета Qaz Qwerty DAX: Программирование 7 12.06.2008 01:46
SQL мониторинг + прямой запрос к SQL Alex_KD DAX: Программирование 17 29.05.2007 03:58
SQL Запрос Александр Костоусов DAX: Программирование 5 24.09.2004 12:15
Собственный SQL запрос в FormDataSource Alexey DAX: База знаний и проекты 0 20.12.2001 00:35
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:52.