Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Объявление sub-функции, НЕ имеющей параметров: допускаются ли скобки после её имени ? / 4 сообщений из 4, страница 1 из 1
26.06.2014, 14:51:22
    #38680900
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объявление sub-функции, НЕ имеющей параметров: допускаются ли скобки после её имени ?
hi all

Вот такой скриптик:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set term ^;
create or alter procedure P1
AS
declare function f1 ()  returns int deterministic as
    begin
        return 1;
    end
begin
end^
set term ;^
commit;
- прокатывает "на ура", т.е. в итоге будет создана и ХП и функция внутри неё.
Однако, эту ХП нельзя отладить в ИБЭ - говорит что 'Parsing error'.

В 3.0 Release Notes приведена нотация (стр. 68), из которой следует, что скобки надо ставить при наличии хотя бы одного аргумента:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 Syntax for Declaring a Sub-procedure 
  DECLARE PROCEDURE <name>  [  (  param1  [, ...] )  ] 
  [RETURNS (param1 [, ...])]
  AS
  ...
      
 Syntax for declaring a Sub-function 
  DECLARE FUNCTION <name>  [  (  param1  [, ...] )  ] 
  RETURNS <type>
  AS
  ...

Тогда почему компилится вышеприведенный пример ?
...
Рейтинг: 0 / 0
26.06.2014, 15:24:48
    #38680951
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объявление sub-функции, НЕ имеющей параметров: допускаются ли скобки после её имени ?
Таблоид,

это кто как понимает. На самом деле объявление функции со скобочками даже при отсутствии аргументов мне как то ближе, тем более что без скобок её не вызовешь. Хотя могут быть и другие мнения

ТаблоидОднако, эту ХП нельзя отладить в ИБЭ - говорит что 'Parsing error'.
это косяк IBE
...
Рейтинг: 0 / 0
26.06.2014, 15:43:07
    #38680982
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объявление sub-функции, НЕ имеющей параметров: допускаются ли скобки после её имени ?
интересно вложенная функция объявленная как deterministic на самом деле такая? И как долго она сохраняет свой детерминизм до окончания работы внешней процедуры/функции или пожизненно, т.е. при следующем вызове внешней процедуры значение объявленной внутри детерминистической функции пересчитываться не будет?
...
Рейтинг: 0 / 0
26.06.2014, 15:46:34
    #38680985
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объявление sub-функции, НЕ имеющей параметров: допускаются ли скобки после её имени ?
Симонов Денисинтересно вложенная функция объявленная как deterministic на самом деле такая? И как долго она сохраняет свой детерминизм до окончания работы внешней процедуры/функции или пожизненно, т.е. при следующем вызове внешней процедуры значение объявленной внутри детерминистической функции пересчитываться не будет? тынц
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Объявление sub-функции, НЕ имеющей параметров: допускаются ли скобки после её имени ? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]