Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.031 c
14-84649
off
2003-06-10 11:26
2003.06.26
Эмуляция нажатия клавиши в нужном приложении?


1-84179
Maxim Pshevlotsky
2003-06-07 07:29
2003.06.26
Не выгружается MTS сервер


1-84187
Юнгман
2003-06-11 14:54
2003.06.26
ComboBox


4-84854
Demon[DZ]
2003-04-22 14:48
2003.06.26
Кнопка


14-84687
Fareader
2003-06-03 19:31
2003.06.26
Работа в Днепропетровске





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский