![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с переносом скрипта из QA в редактор TQuery [D5, MSSQL]
Rob © (2005-08-29 13:19:00)Добрый день. Имеется запрос на TSQL, состоящий из примерно 3000 строк. В SQL Query Analyzer е он нормально отрабатывает. Но при переносе его либо через буфер, либо выполнением
Query1.SQL.LoadFromFile.....
после запуска запроса на исполнение постоянно лезет ошибка типа:
Line ... Incorrect syntax near ':'.
Пробовал с помощью Trim очищать стороки SQL и слева и справа. Тогда меняется либо номер Line в сообщении об ошибке либо еще похлеще:
например, если написано date_from, то начинает ругаться:
Line ... Incorrect syntax near 'date_:'.
Господа, кто сталкивался с такой проблемой, пожалуйста, посоветуйте как быть!
paul_k (2005-08-30 10:08:00) [1]Rob (29.08.05 13:19)
как написано в
Val © (29.08.05 16:35) [12]
оформи запрос как хранимую процедуру и обращайся к ней.
Anatoly Podgoretsky (2005-08-29 23:40:00) [2]Rob (29.08.05 21:08) [23]
Ну вы себя сами мучаете, ну сколько можно говорить, не используйте БДЕ для данной цели, не его это.
Ну а насчет скрипта, приведи строк 20-40
Rob (2005-08-29 21:08:00) [3]Anatoly Podgoretsky
Факт описан в моем первом посте. Я мог-бы привести Вам и сам скрипт, но для проверки его работы придется так-же выслать весьма не малые по объему базы.
В общем, можно резюмировать: при использовании BDE и при превышении определенного числа сторок свойства SQL у компонента TQuery начинаются приведенные мной проблемы и следует либо переносить скрипт на сервер в SP, либо использовать ADO. За сим, думаю, обсуждение темы можно закончить.
Anatoly Podgoretsky (2005-08-29 20:42:00) [4]Что то пока фактов не видать. Есть головословный, типичные утверждения, что система виновата.
Rob (2005-08-29 19:56:00) [5]Val
Это не мои личные измышления, а факт с которым я, к сожалению, столкнулся.
ANB
"А BDE не ест несколько операторов в одном запросе."
Ест.
Val (2005-08-29 17:57:00) [6]При том, что это разные инструменты. И "глючить" тут - ваши личные измышления.
Anatoly Podgoretsky (2005-08-29 17:55:00) [7]Rob (29.08.05 17:53) [18]
Потому что БДЕ поддерживает только версию 6,5, все что выше только на везение.
Rob (2005-08-29 17:53:00) [8]Val
Причем тут паскаль и си? В данном случае речь идет о том, что BDEшный TQuery после определенного числа строк в свойстве SQL начинает глючить, а TADOQuery нет. Оба компонента предназначены для одного и того-же.
Val (2005-08-29 17:32:00) [9]а почему паскаль не компилит сишные файлы?
Rob (2005-08-29 17:25:00) [10]ADO съел. Весь вопрос в том, ПОЧЕМУ BDE НЕ ЗАХОТЕЛ ???
ANB (2005-08-29 17:16:00) [11]
> Rob (29.08.05 17:14) [14]
- значит, потому ADO и съел.
Rob (2005-08-29 17:14:00) [12]ANB
GO не используется.
ANB (2005-08-29 17:11:00) [13]
> Rob (29.08.05 15:59) [9]
- странно, как это ADO GO съел. У меня не хотел. Пришлось скриптогонялку писать. Хотя, возможно, здесь и без GO можно было обойтись. А BDE не ест несколько операторов в одном запросе.
Val (2005-08-29 16:35:00) [14]>[9] Rob (29.08.05 15:59)
Думаю, что это НУЖНО вынести в серверный код.
MOA (2005-08-29 16:34:00) [15]На всякий случай - цитата из BOL:
GO is nota Transact-SQL statement; it is a command recognized by the osql and isql utilities and SQL Query Analyzer.
MOA (2005-08-29 16:31:00) [16]>Запрос состоит из формирования нескольких временных таблиц и работой с ними.
Ага! Вот потому и 3000 строк!
А GO в скрипте, наверное, вовсю используется - раз DDL используете?
Удачи!
Rob (2005-08-29 15:59:00) [17]Запрос состоит из формирования нескольких временных таблиц и работой с ними.
Результат работы с ADO положительный. Однако, поскольку скрипт исполняется порядка 5 минут пришлось связку TADOConnection+TADOQuery заменить на TADOCommand. Иначе все вылетало по Timeout expired.
ANB (2005-08-29 15:31:00) [18]А хотя бы начало. Думаю, там в первых 5 строках проблемы будет видно.
Anatoly Podgoretsky (2005-08-29 15:25:00) [19]ANB © (29.08.05 15:08) [5]
Что все 3000 строк?
Shaman_ (2005-08-29 15:15:00) [20]>Запрос в студию.
на 3000 строк? :)
Кстати что за запрос такой на 3000 строк? У меня ощущение что там набор запросов