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

Вниз

Можно ли вставлять комментарии в текст 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.02 c
8-84459
Ifrit
2003-03-09 13:32
2003.06.26
Народ, помогите!!!!, Как сделать форму прозрачной...


9-83834
Antrom
2003-01-12 14:56
2003.06.26
Анимация изображения


14-84533
MrMister
2003-06-06 22:59
2003.06.26
Проблемы с TMemo в Win9x


1-84341
Igor
2003-06-16 11:37
2003.06.26
Абсолютные координаты компонента в окне


1-84153
MegaVolt
2003-06-11 12:09
2003.06.26
Подскажите прогу которая может мониторить обращения к DLLкам.