AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

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

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

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

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

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

Спасибо
__________________
--
regards, Oleksandr
Old 07.07.2008, 20:38   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Join Date: 28.11.2005
Blog Entries: 1
Quote:
Originally Posted by Oleksandr View Post
но как его исползовать в сложном запросе (дже не Т-, а аксаптовский сиквел)? select ... where InRange(..) не дозволено синтаксисом
Использовать не select, а query.
Tags
документация

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Произвольный 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 01:48.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.