|
|
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
Создаю процедуру: 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 - то же самое...только еще и на скобки ругается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:21 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
В ХП и триггерах использовать домены невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:25 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
И как мне описать это поле тогда? Просто Smallint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:26 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
Катерина Именно так : SMALLINT ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:27 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
А можно в запросе использовать 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". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:31 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
SELECT ... INTO - в ХП может выводить только 1 запись, а в данном случае выводится несколько, так что надо использовать конструкцию FOR SELECT ... INTO . P.S. Вот только не знаю как будет работать UNION . И возможно ли вообще использовать его в ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:42 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
Я итак использую FOR SELECT, просто FOR в той же строчке, что и BEGIN. Без UNION и переменной N ошибка та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:47 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
Ну так пытайся закомментировать куски пока не найдёшь причину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:50 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
Меня еще смущает то, что передаваемые параметры используются и в конструкции select. Можно ли делать так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:51 |
|
||
|
Ошибка в Stored Proc
|
|||
|---|---|---|---|
|
#18+
А параметры надо писать так - :abKey, :fckey, :scKey ... т.е. двоеточие перед ними, так вернее, чтобы не путать с названиями полей ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 11:56 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32296330&tid=1579808]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 510ms |

| 0 / 0 |
