Главная страница
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.041 c
4-1123866267
OlegTrubin
2005-08-12 21:04
2005.10.09
PlaySound асинхронно


14-1127011917
Body
2005-09-18 06:51
2005.10.09
Физика


2-1124905795
095
2005-08-24 21:49
2005.10.09
расскажите как можно с помощью Delphi запрограмить запуск странич


2-1125130361
Antonn
2005-08-27 12:12
2005.10.09
Что такое идентификатор по правилам Object Pascal?


14-1126858405
Juice
2005-09-16 12:13
2005.10.09
Опять проблемы с ноутбуком