Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Проблема с переносом скрипта из QA в редактор TQuery   Найти похожие ветки 

 
Rob   (2005-08-29 13:19) [0]

Добрый день. Имеется запрос на TSQL, состоящий из примерно 3000 строк. В SQL Query Analyzer е он нормально отрабатывает. Но при переносе его либо через буфер, либо выполнением
Query1.SQL.LoadFromFile.....
после запуска запроса на исполнение постоянно лезет ошибка типа:
Line ... Incorrect syntax near ":".

Пробовал с помощью Trim очищать стороки SQL и слева и справа. Тогда меняется либо номер Line в сообщении об ошибке либо еще похлеще:
например, если написано date_from, то начинает ругаться:
Line ... Incorrect syntax near "date_:".

Господа, кто сталкивался  с такой проблемой, пожалуйста, посоветуйте как быть!


 
Rob   (2005-08-29 13:28) [1]

Да, забыл добавить: символ ":" отсутствует в тексте запроса.


 
Shaman_ ©   (2005-08-29 14:22) [2]

Были подобные проблемы когда в значениях присуствовали ковычки. Исправляется удвоением или применением параметров. Хотя не уверен что это твой случай


 
Rob   (2005-08-29 14:31) [3]

Попробовал заменить " на ". То-же самое. Может быть у BDE ограничение на длину запроса?
Сейчас попробую ADO.


 
Shaman_ ©   (2005-08-29 15:06) [4]

Попробовал заменить " на "
Зачем?
Допустим есть запрос INSERT INTO TABLENAME (FIELDNAME) ("Монитор 17" TFT")
Такая конструкция спотыкнется на " стоящем после 17
Попробуй ставить / перед ковычкой в значении:
INSERT INTO TABLENAME (FIELDNAME) ("Монитор 17/" TFT")


 
ANB ©   (2005-08-29 15:08) [5]

Запрос в студию.


 
Shaman_ ©   (2005-08-29 15:15) [6]

>Запрос в студию.
на 3000 строк? :)

Кстати что за запрос такой на 3000 строк? У меня ощущение что там набор запросов


 
Anatoly Podgoretsky ©   (2005-08-29 15:25) [7]

ANB ©   (29.08.05 15:08) [5]
Что все 3000 строк?


 
ANB ©   (2005-08-29 15:31) [8]

А хотя бы начало. Думаю, там в первых 5 строках проблемы будет видно.


 
Rob   (2005-08-29 15:59) [9]

Запрос состоит из формирования нескольких временных таблиц и работой с ними.
Результат работы с ADO положительный. Однако, поскольку скрипт исполняется порядка 5 минут пришлось связку TADOConnection+TADOQuery заменить на TADOCommand. Иначе все вылетало по Timeout expired.


 
MOA ©   (2005-08-29 16:31) [10]

>Запрос состоит из формирования нескольких временных таблиц и работой с ними.
Ага! Вот потому и 3000 строк!
А GO в скрипте, наверное, вовсю используется - раз DDL используете?
Удачи!


 
MOA ©   (2005-08-29 16:34) [11]

На всякий случай - цитата из BOL:
GO is not a Transact-SQL statement; it is a command recognized by the osql and isql utilities and SQL Query Analyzer.


 
Val ©   (2005-08-29 16:35) [12]

>[9] Rob   (29.08.05 15:59)
Думаю, что это НУЖНО вынести в серверный код.


 
ANB ©   (2005-08-29 17:11) [13]


> Rob   (29.08.05 15:59) [9]
- странно, как это ADO GO съел. У меня не хотел. Пришлось скриптогонялку писать. Хотя, возможно, здесь и без GO можно было обойтись. А BDE не ест несколько операторов в одном запросе.


 
Rob   (2005-08-29 17:14) [14]

ANB

GO не используется.


 
ANB ©   (2005-08-29 17:16) [15]


> Rob   (29.08.05 17:14) [14]
- значит, потому ADO и съел.


 
Rob   (2005-08-29 17:25) [16]

ADO съел. Весь вопрос в том, ПОЧЕМУ BDE НЕ ЗАХОТЕЛ ???


 
Val ©   (2005-08-29 17:32) [17]

а почему паскаль не компилит сишные файлы?


 
Rob   (2005-08-29 17:53) [18]

Val

Причем тут паскаль и си? В данном случае речь идет о том, что BDEшный TQuery после определенного числа строк в свойстве SQL начинает глючить, а TADOQuery нет. Оба компонента предназначены для одного и того-же.


 
Anatoly Podgoretsky ©   (2005-08-29 17:55) [19]

Rob   (29.08.05 17:53) [18]
Потому что БДЕ поддерживает только версию 6,5, все что выше только на везение.


 
Val ©   (2005-08-29 17:57) [20]

При том, что это разные инструменты. И "глючить" тут - ваши личные измышления.


 
Rob   (2005-08-29 19:56) [21]

Val
Это не мои личные измышления, а факт с которым я, к сожалению, столкнулся.

ANB
"А BDE не ест несколько операторов в одном запросе."
Ест.


 
Anatoly Podgoretsky ©   (2005-08-29 20:42) [22]

Что то пока фактов не видать. Есть головословный, типичные утверждения, что система виновата.


 
Rob   (2005-08-29 21:08) [23]

Anatoly Podgoretsky

Факт описан в моем первом посте. Я мог-бы привести Вам и сам скрипт, но для проверки его работы придется так-же выслать весьма не малые по объему базы.
В общем, можно резюмировать: при использовании BDE и при превышении определенного числа сторок свойства SQL у компонента TQuery начинаются приведенные мной проблемы и следует либо переносить скрипт на сервер в SP, либо использовать ADO. За сим, думаю, обсуждение темы можно закончить.


 
Anatoly Podgoretsky ©   (2005-08-29 23:40) [24]

Rob   (29.08.05 21:08) [23]
Ну вы себя сами мучаете, ну сколько можно говорить, не используйте БДЕ для данной цели, не его это.
Ну а насчет скрипта, приведи строк 20-40


 
paul_k ©   (2005-08-30 10:08) [25]

Rob   (29.08.05 13:19)
как написано в
Val ©   (29.08.05 16:35) [12]
оформи запрос как хранимую процедуру и обращайся к ней.



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.03 c
2-1125237004
Станислав
2005-08-28 17:50
2005.10.09
окно


2-1125002577
Руслан
2005-08-26 00:42
2005.10.09
Обработчик событий для динамичестого массива объектов


14-1126244151
КаПиБаРа
2005-09-09 09:35
2005.10.09
Задачка про муравья


14-1126890128
ArtemESC
2005-09-16 21:02
2005.10.09
Прерывания


5-1102447881
Arnold
2004-12-07 22:31
2005.10.09
Каак создать TButton с возможностью загрузки рисунков?