Форум: "Базы";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизПроблема с переносом скрипта из 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.022 c