07.07.2008, 17:13 | #1 |
Участник
|
Как преобразовать запрос в SQL-инструкцию
Отчет реализован на базе класса RunBaseReport. Есть интерес преобразовать запрос сформированный пользователем в T-SQL-инструкцию и передать ее серверу. А точнее интересует не весь запрос, а хотя бы секция Ranges. Метод ToString формирует строку, но SQL сервер, естественно, ее не понимает. Интересует есть ли вообще способ получить подобный результат, или придется копать в другом месте
|
|
07.07.2008, 17:23 | #2 |
Участник
|
Включите трассировку SQL запросов. Сервис -> Параметры -> Закладка SQL -> Галочка трассировка SQL и еще одну на выбор, например Infolog. А вот это
Цитата:
Есть интерес преобразовать запрос сформированный пользователем в T-SQL-инструкцию и передать ее серверу.
|
|
07.07.2008, 17:25 | #3 |
Боец
|
Цитата:
Есть интерес преобразовать запрос сформированный пользователем в T-SQL-инструкцию
Ставьте задачу конкретнее. |
|
07.07.2008, 18:06 | #4 |
Участник
|
щас попробую конкретизировать. преимущество ранбейсрепорта (для меня) состоит в том, что пользователь может задавать фильтры к любым полям таблицы, в зависимости от своих фантазий, т.е. мне не нужно формировать диалог с жестким списком полей. беда в том, что запрос через класс Connection возвращает результат быстрее чем queryrun. т.е задача состоит в том, чтобы критерии стандартного Query преобразовать в синтаксис T-sql, выполнить их на сервере и вернуть в резултСет. хочется оптимизировать репорт и при этом сохранить преимущества стандартного класса в выборе критериев. может я действительно занялся ерундой, в таком случае, может подскажете альтернативный способ решения проблемы оптимизации
|
|
07.07.2008, 18:11 | #5 |
Axapta
|
Думаю, вы занялись "ерундой". Альтернативный способ? Пожалуйста. Включить мониторинг запросов. Посмотреть, какой запрос "тормозит". Понять почему он так себя ведет. По возможности исправить. При необходимости - повторить.
http://axapta.mazzy.ru/lib/querytuning/ |
|
07.07.2008, 18:19 | #6 |
Участник
|
ИМХО, отчет так просто не оптимизировать, ввиду того что условия в запросе могут быть самыми разнообразными, на все поля индексов не наделать, только если провести мониторинг наиболее часто повторяющихся условий
|
|
07.07.2008, 20:06 | #7 |
Участник
|
Только захотел написать похожий вопрос а тут уже обсуждают.
У меня следующая задача: пользователь задает произволный range на диалоге runbasebatch по полю (типу) InventTable.PrimaryVendorID, но условия выборки стоит так: выбрать записи, у которых InventTable.PrimaryVendorID попадает в рендж, если нет - то искать в Торговых соглашениях (или как там по-русски trade agreements . Так вот, пользователский рендж-то я вытащить могу из квери, но как его исползовать в сложном запросе (дже не Т-, а аксаптовский сиквел)? select ... where InRange(..) не дозволено синтаксисом . Думаю, не я первый с такой пробелмой... Спасибо
__________________
-- regards, Oleksandr |
|
07.07.2008, 20:38 | #8 |
Axapta
|
|
|
Теги |
документация |
|
Похожие темы | ||||
Тема | Ответов | |||
Произвольный SQL-запрос | 26 | |||
Поймать SQL запрос при формировании отчета | 7 | |||
SQL мониторинг + прямой запрос к SQL | 17 | |||
SQL Запрос | 5 | |||
Собственный SQL запрос в FormDataSource | 0 |
|