| | автор писал: |
| | Наверняка, кто-то использовал/ет, помогите, пожалуйста.
Запустил сабж...Работает. Типа все ОК, но при пуске из QA выдается:
Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'INDEX'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.
Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'Top'.
Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'INDEX'. |
Так как подстроки "INDEX" нету в теле этой процедуры, значит, дело в конкретных значениях ваших параметров. Разобраться в этом без озвучивания этих параметров невозможно.
| | автор писал: |
| | Но Level = 15, и результат нормально выдается в гриде...Но вот мой клиент (через ADO работает) выдает "Incorrect syntax near the keyword 'INDEX' " и до свидания...:-(
Почему он считает это фатальной ошибкой? |
Вовсе не фатальная. Просто клиент сгенерировал исключение на первой же ошибке. Такая особенность, значит, у этого клиента. Дельфовые ADO-компоненты, например, такое любят учинять.
| | автор писал: |
| | Как бы результаты на клиенте поиметь-таки... |
Не вопрос. Надо посмотреть ваши параметры, понять почему дин. запросы с ними дают синтаксическую ошибку и исправить её.
| | автор писал: |
| | Зачем в конце exec('select * from #tbl_res order by 1,2,3'),
а не простое select * from #tbl_res order by 1,2,3? |
Соображение очень простое. Поскольку вывод этого селекта должен производиться не всегда, а по некоему условию (там IF стоит), то для оптимизации производительности желательно, чтобы план для этого селекта строился только "когда надо", т.е. в момент употребления. Хотя, в принципе, практически это неважно. Есть еще соображение, что данный селект рудиментарный от более сложного, для которого было трудно обойтись без дин. запроса.
| | автор писал: |
| | Ведь при exec() результат на клиента не идет...Или я чего-то не понимаю? |
Идет нормально.