Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка в Stored Proc / 11 сообщений из 11, страница 1 из 1
17.10.2003, 11:21
    #32296323
Катерина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
Создаю процедуру:

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

CREATE PROCEDURE EX (fckey INTEGER, e1key INTEGER)
RETURNS(
abkey INTEGER,
fckey INTEGER,
sckey INTEGER,
sp11key INTEGER,
sp12key INTEGER,
balle1 TBALL,
balle2 TBALL,
balle3 TBALL,
balle4 TBALL,
e1key INTEGER,
e2key INTEGER,
e3key INTEGER,
e4key INTEGER,
N INTEGER
)
AS BEGIN FOR

****

ISQL Ругается на ошибку...Unknown TBALL - Это домен.
Как его правильно описать? Прбовала "TBALL", (TBALL) и (TBALL) Smallint - то же самое...только еще и на скобки ругается
...
Рейтинг: 0 / 0
17.10.2003, 11:25
    #32296330
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
В ХП и триггерах использовать домены невозможно.
...
Рейтинг: 0 / 0
17.10.2003, 11:26
    #32296331
Катерина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
И как мне описать это поле тогда?
Просто Smallint
...
Рейтинг: 0 / 0
17.10.2003, 11:27
    #32296332
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
Катерина
Именно так : SMALLINT !
...
Рейтинг: 0 / 0
17.10.2003, 11:31
    #32296337
Катерина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
А можно в запросе использовать Union и вводить новые переменные?
Потому как написав так:

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

CREATE PROCEDURE EX (fckey INTEGER, e1key INTEGER)
RETURNS(
abkey INTEGER,
fckey INTEGER,
sckey INTEGER,
sp11key INTEGER,
sp12key INTEGER,
balle1 SMALLINT,
balle2 SMALLINT,
balle3 SMALLINT,
balle4 SMALLINT,
e1key INTEGER,
e2key INTEGER,
e3key INTEGER,
e4key INTEGER,
N INTEGER
)
AS BEGIN FOR

select abKey,fckey,scKey,sp11Key,sp12Key,BallE1,BallE2,BallE3,BallE4,sc.e1key,sc.e2key,sc.e3key,sc.e4key,(1) n from ab join sc on ab.sckey=sc.sckey where fckey = :fckey and sc.e1key = :e1key
UNION
select abKey,fckey,scKey,sp11Key,sp12Key,BallE1,BallE2,BallE3,BallE4,sc.e1key,sc.e2key,sc.e3key,sc.e4key,(2) n from ab join sc on ab.sckey=sc.sckey where fckey = :fckey and sc.e1key = :e1key
UNION
select abKey,fckey,scKey,sp11Key,sp12Key,BallE1,BallE2,BallE3,BallE4,sc.e1key,sc.e2key,sc.e3key,sc.e4key,(3) n from ab join sc on ab.sckey=sc.sckey where fckey = :fckey and sc.e1key = :e1key
UNION
select abKey,fckey,scKey,sp11Key,sp12Key,BallE1,BallE2,BallE3,BallE4,sc.e1key,sc.e2key,sc.e3key,sc.e4key,(4) n from ab join sc on ab.sckey=sc.sckey where fckey = :fckey and sc.e1key = :e1key

INTO :abkey,
:fckey,
:sckey,
:sp11key,
:sp12key,
:balle1,
:balle2,
:balle3,
:balle4,
:e1key,
:e2key,
:e3key,
:e4key,
:N

DO
SUSPEND;

END
^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;


Получила ошибку

Unsuccessful metadata update
STORE RDB$PROCEDURE_PARAMETERS failed
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_18".
...
Рейтинг: 0 / 0
17.10.2003, 11:42
    #32296365
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
SELECT ... INTO - в ХП может выводить только 1 запись, а в данном случае выводится несколько, так что надо использовать конструкцию
FOR SELECT ... INTO .

P.S. Вот только не знаю как будет работать UNION . И возможно ли вообще использовать его в ХП.
...
Рейтинг: 0 / 0
17.10.2003, 11:47
    #32296379
Катерина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
Я итак использую FOR SELECT, просто FOR в той же строчке, что и BEGIN.

Без UNION и переменной N ошибка та же.
...
Рейтинг: 0 / 0
17.10.2003, 11:50
    #32296385
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
Ну так пытайся закомментировать куски пока не найдёшь причину.
...
Рейтинг: 0 / 0
17.10.2003, 11:51
    #32296390
Катерина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
Меня еще смущает то, что передаваемые параметры используются и в конструкции select. Можно ли делать так?
...
Рейтинг: 0 / 0
17.10.2003, 11:56
    #32296401
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
А параметры надо писать так - :abKey, :fckey, :scKey ...
т.е. двоеточие перед ними, так вернее, чтобы не путать с названиями полей ...
...
Рейтинг: 0 / 0
17.10.2003, 11:58
    #32296404
Катерина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Stored Proc
Нашла ошибку! :)
Написала

CREATE PROCEDURE "EX"
(
"FKEY" INTEGER,
"EKEY" INTEGER
)

И еще нашла пару ошибок..

Всем спасибо :))
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка в Stored Proc / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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