powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
8 сообщений из 8, страница 1 из 1
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926645
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем.

При автоматической генерации скрипта создания хранимых процедур наткнулся на ошибку, при которой невозможен DROP или ALTER PROCEDURE.

Ниже приведен текст скрипта, воспроизводящий данную ошибку.
Вроде бы из текста скрипта понятна суть ошибки.

P.S. Скрипт выполнялся в ISQL.EXE.

С уважением, Polesov.

/* ---------------------------------------
The script parts executed in ISQL.EXE
*/

CREATE DATABASE 'localhost:c:\db\sp_error.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096;

CREATE TABLE ITEMS (
ID INTEGER NOT NULL, /* system domain RDB$1 */
NAME VARCHAR(10) NOT NULL, /* system domain RDB$2 */
COST NUMERIC(15,2) NOT NULL /* system domain RDB$3 */
);

ALTER TABLE ITEMS ADD CONSTRAINT PK_ITEMS PRIMARY KEY (ID);
ALTER TABLE ITEMS ADD CONSTRAINT UNQ_ITEMS UNIQUE (NAME);

SET TERM ^ ;

CREATE PROCEDURE GET_ITEMS
RETURNS (
ID RDB$1, -- specify the same system domains,
NAME RDB$2, -- which were created automatically
COST RDB$3 ) -- when creating a table ITEMS
AS
BEGIN
FOR
SELECT ID, NAME, COST
FROM ITEMS
INTO :ID, :NAME, :COST
DO
SUSPEND;
END ^

SET TERM ; ^


/*
when you try to change the procedure an error occurs
*/
SET TERM ^ ;

ALTER PROCEDURE GET_ITEMS
RETURNS (
ID RDB$1,
NAME RDB$2,
COST RDB$3 )
AS
BEGIN
FOR
SELECT ID, NAME, COST
FROM ITEMS
ORDER BY NAME
INTO :ID, :NAME, :COST
DO
SUSPEND;
END ^

SET TERM ; ^
/* ERROR:
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-cannot delete
-DOMAIN RDB$1
-there are 1 dependencies
*/
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926652
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,

на кой макар ты в текст ХП прописал домены генерированные сервером
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926654
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovВроде бы из текста скрипта понятна суть ошибки.
Ага. И она заключается в том, что ни при каких обстоятельствах нельзя ссылаться на
автоматически генерируемые домены. Следует использовать пользовательские домены или TYPE OF.

Эти домены - артефакт реализации и могут ненароком исчезнуть в какой-нибудь версии.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926655
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, что бы тип выходных параметров SP совпадал с типом полей таблиц, участвующих в запросе.
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926656
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, строго говоря, если такое использование доменов технически разрешено, то невозможность изменить процедуру явная ошибка.
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926657
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Polesov!
You wrote on 3 апреля 2015 г. 18:40:12:

Polesov> Для того, что бы тип выходных параметров SP совпадал с типом полей
> таблиц, участвующих в запросеTYPE OF

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926662
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesovстрого говоря, если такое использование доменов технически разрешено, то
невозможность изменить процедуру явная ошибка
Значит надо всего-то их использование технически запретить. Я бы это сделал, но прав
коммита не имею.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
    #38926671
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗначит надо всего-то их использование технически запретить.


Или при ALTER PROCEDURE оставить домен в покое, если на него еще ссылается какой-либо объект.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB2.5 - ошибка при ALTER PROCEDURE, содержащей в параметрах ссылки на системные домены
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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