Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизМожно ли вставлять комментарии в текст SQL-запроса... Найти похожие ветки
← →
KSergey (2003-05-27 15:27) [0]...в компоненты TQuery (или TADOQuary)? Если можно, то какими символами их выделить?
← →
bushmen (2003-05-27 15:28) [1]А в самом теле программы перед открытием Query или его заполнением почему нельзя этого сделать?
← →
sniknik (2003-05-27 15:53) [2]при чем сдесь TQuery/TADOQuery? это дело sql сервера/движка с запросом разбиратся
MSSQL понимает так
SELECT * /*Комментарий*/ FROM sysusers --это тоже комментарий
← →
KSergey (2003-05-28 08:04) [3]> sniknik © (27.05.03 15:53)
Да вот и я так думал, однако же есть проблема в параметрами
Например
SELECT * FROM T WHERE Field=:Param1 /* а тут комментарий */
И тут же именно дельфи начитает ругаться типа "ошибка параметра ":Param1 /*"" - т.е. комментарии в SQL дельфи не игнорирует...
Хоят буз параметров все работает отлично и с комментариями...
← →
sniknik (2003-05-28 08:15) [4]KSergey © (28.05.03 08:04)
> комментарии в SQL дельфи не игнорирует...
еще раз, при чем здесь Delphi?
я говорю про MSSQL, и запрос к нему из Delphi
select * from Categories WHERE CategoryID=:ID /* а тут комментарий */
← →
sniknik (2003-05-28 08:17) [5]в общем такой запрос работает. а тебе бы не мешало обращать внимание на базы к каким подключаешся и делить за что дельфи отвечает а за что они
← →
KSergey (2003-05-28 09:10) [6]> sniknik © (28.05.03 08:17)
Ok, не указал сразу MS SQL.
Вообще-то Вы напраcно кричите по поводу "Delphi ни при чем". Ведь распарcивание SQL-запроса на предмет нахождения параметров (того, что начинается с символа ":") делает именно дельфи, SQL-сервер тут ни при чем.
Делаем:
на форме TADOQuery, SQL=
SELECT TOP 2 *
FROM tbBuilds
/*WHERE Num = :Num*/
Вроде ничего такого страшного (хотя это, конечно, и отличается существенно от приведенного ранее мною текста запроса.
Как видим - параметр в коментариях. Вроде имею право - его бы проигнорировать, но не тут то было. Причем ошибки самые разнообразные. Если почистить Parameters - дельфи его заполняет как :Num*/ (именно дельфи!)
Ну и прочие разнообразные глюки в зависимости от того поставлен пробел между ":Num" и "*/" или нет.
← →
AlexSerp (2003-05-28 09:21) [7]KSergey, а зачем тебе комментарии?
В ИнтерБасе комментарии так же пишутся,
но Дельфя не пропускает.
← →
Silver_ (2003-05-28 09:52) [8]
> AlexSerp © (28.05.03 09:21)
> KSergey, а зачем тебе комментарии?
Я его понимаю. Сделал я один сложный запрос, а тама гдето неточность вкралась. Смотрел и так и эдак не смог найть. Чего делать - разбить запрос на поменьше и искать в отдельных кусках. НО КАК. Брать весь текст писать куда-то, по кусочку тащить проверять, и так пока..., или в проге написать и каждый раз ждать загрузки проги чтоб увидеть что опять ложанулся. А коментарий в самый раз помог бы. НО НЕ СУДЬБА.
ЗЫ. из записок... :)
← →
Ihor Osov'yak (2003-05-28 10:01) [9]>SELECT TOP 2 *
FROM tbBuilds
/*WHERE Num = :Num*/
Сделай пробел между :Num и */
Делфи конечно же будет заполнять параметр :Num - нужно предоставить ему такую возможность :-), но єто уже будет часть комментария с точки зрения сервера..
... Как имя параметра делфи расценивает то, что идет после : и до первого пробела. Учитывайте это обстоятельство - и не будет проблем..
← →
KSergey (2003-05-28 10:19) [10]> Ihor Osov"yak © (28.05.03 10:01)
За точное описание что же дельфи считает параметром - спасибо. Подозревал, но точно не знал.
Дельфи-то параметр сделает, но она еще и пытается его применить - а не получается. Отсюда другие ошибки лезут.
> AlexSerp © (28.05.03 09:21)
> KSergey, а зачем тебе комментарии?
Вообще-то не совсем понимаю. На комментариях все держится. Иначе через месяц-два фиг бы я вспомнил чего тут такого наворотил...
Ладно, тема закрыта, я понял
Спасибо.
← →
AlexSerp (2003-05-28 10:34) [11]KSergey, я бы в таком случае хранил SQL-текст в unit.pas как комментарий программы.
← →
Сергей Чурсин (2003-05-28 11:35) [12]"На комментариях все держится."
Ну фигли...
Query1.Sql:="SELECT * FROM T WHERE Field=:Param1"; // а тут комментарий
← →
AlexSerp (2003-05-28 11:41) [13]Сергей Чурсин, я не спорю.
В юнитах, хранимых прцедурах - да.
В запросах - немного сомневаюсь.
Обычно в нем все видно. Базу-то знать надо.
← →
KSergey (2003-05-28 16:32) [14]> AlexSerp © (28.05.03 11:41)
Ну-ну ;)
Вообще-то доказывать необходимость комментариев я здесь не собираюсь. ;)
← →
sniknik (2003-05-29 00:09) [15]KSergey © (28.05.03 09:10)
> Вообще-то Вы напраcно кричите (!?????? я даже не шопотом) по поводу "Delphi ни при чем". Ведь распарcивание SQL-запроса на предмет нахождения параметров (того, что начинается с символа ":") делает именно дельфи, SQL-сервер тут ни при чем.
именно, дельфи ни причем, комментарии понимает MSSQL, а дельфи нет и куда вы параметр вставите ему пофигу (синтаксис запроса дельфи не понимает).
Silver_ © (28.05.03 09:52)
> А коментарий в самый раз помог бы. НО НЕ СУДЬБА
как же? работает но не судьба? всего то нужно 2 правила соблюдать, не вставлять : в текст комментария, и вставлять пробелы между комментарием и значимым запросом. но извините письма вы как пишете без пробелов? понять то можно, но не обязаны, т.е. захотят поймут а могут такое письмо сразу в мусорку...
и насчет ":", ну если вам использование этого символа в комментариях принципиально то отключите PapamCheck а параметры создавайте сами без участия дельфей, и все будет как вам хочется.
KSergey © (28.05.03 10:19)
> Дельфи-то параметр сделает, но она еще и пытается его применить - а не получается. Отсюда другие ошибки лезут.
чуть выше. отключи и делай их сам.
← →
Suntechnic (2003-05-29 07:01) [16]По-моему вот так должно сработать.
SELECT TOP 2 *
FROM tbBuilds
/*WHERE Num = ::Num*/
Проверять облом, но мне кажется я когда-то давно на это наталкивался и double ":" интерпретируется как одинарный (что вообщем-то есть негласным правилом для любых спец. символов).
← →
BoxTer (2003-05-29 08:04) [17]
--
усе после 2х минусов игнорируется, в т.ч. и дельфами...
← →
KSergey (2003-05-29 09:43) [18]Не в смысле спора, но, согласитесь, вы сами себе противоречите, и, надеюсь, со мной в этом согласитесь ;)
Сначала:
> sniknik © (29.05.03 00:09)
> именно, дельфи ни причем, комментарии понимает MSSQL, а
> дельфи нет и куда вы параметр вставите ему пофигу (синтаксис
> запроса дельфи не понимает).
а потом:
> комментариях принципиально то отключите PapamCheck а параметры
> создавайте сами без участия дельфей, и все будет как вам
> хочется.
Всетаки дельфи при чем, так ведь? ;)
Ну да ладно, мысль я понял, теперь уже просто к словам придираюсь.
> Suntechnic © (29.05.03 07:01)
> BoxTer © (29.05.03 08:04)
Эх, жаль сейчас уже лень пробовать. Но на заметку возьму.
> sniknik © (29.05.03 00:09)
По поводу ParamCheck тоже возьму на заметку (чтобы вам не обидно было ;).
← →
sniknik (2003-05-29 11:14) [19]KSergey © (29.05.03 09:43)
> По поводу ParamCheck тоже возьму на заметку (чтобы вам не обидно было ;).
мне не обидно, мне пофигу. когда нибудь да поймеш разницу. (может быть)
> Сначала:
...
> а потом:
...
это не противоречие, одно дело сам запрос и другое кто и как туда параметры вставляет. если не дельфи а ты сам(или какой добровольный помошник) также этот запрос исковеркаеш(под видом вставки параметров) то он тоже работать не будет.
> Ну да ладно, мысль я понял, теперь уже просто к словам придираюсь
вот именно.
Suntechnic © (29.05.03 07:01)
так и есть. работает.
BoxTer © (29.05.03 08:04)
нет. дельфи синтаксис запроса не разбирает. попробуй внести при включенном ParamCheck
SELECT TOP 2 *
FROM tbBuilds
-- /*WHERE Num = :Num*/
он(дельфи) тебе сделает параметр с именем Num*/.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.026 c