Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с переносом скрипта из QA в редактор TQuery [D5, MSSQL]


Страницы:   1 2

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 строк? У меня ощущение что там набор запросов


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо