параметры и переменные в выражениях Stored Proc

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

параметры и переменные в выражениях Stored Proc

Сообщение DSKalugin » 17 фев 2006, 13:33

на сколько я знал, в выражениях ХП перед переменными и параметрами двоеточние не ставится, вот и не ставил и все прекрасно работало. Теперь, читая DataDef.pdf (InterBase 6 Data Definition
Guide стр 172-173) натыкаюсь на примеры, в которых то ставятся двоеточия то не ставятся в выражениях

Код: Выделить всё

IF (emp_wo_proj = 5) THEN ********
*****************
IF ((:product <> 'software') OR (:product <> 'hardware') OR
(:product <> 'other') OR (:product <> 'N/A')) THEN
result = 'Enter product: software, hardware, other, or N/A';
КАК ЖИТЬ ДАЛЬШЕ?
Последний раз редактировалось DSKalugin 17 фев 2006, 13:57, всего редактировалось 1 раз.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 фев 2006, 13:44

очень просто. лично я следую такому правилу -
для входных, выходных и локальных переменных процедуры (или локальных переменных триггеров), двоеточие перед такой переменной НЕ ставится если переменной присваивается значение. В остальных случаях - двоеточие ставлю всегда. Например

Код: Выделить всё

...
declare variable myvar int;
...
  myvar = :myvar+1;
вот и все. собственно, двоеточия здесь ставить необязательно, но на мой взгляд двоеточия помогают быстрее визуально определить, где имена переменных, а где имена столбцов.

ivl
Сообщения: 59
Зарегистрирован: 22 мар 2006, 15:29

Сообщение ivl » 22 мар 2006, 15:47

Двоеточие перед локальной переменной, входным или выходным параметром должно обязательно ставиться если они используются в операторах SELECT, INSERT, DELETE и UPDATE.
В других операторах (IF и пр.) ставить не рекомендуется, но допустимо.
(кроме как слева от оператора "=").

Ответить