|
В чем грабли с ХП ??
|
|||
---|---|---|---|
#18+
Вот пытаюсь создать ХП: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
А оно мне : Dynamic SQL Error SQL error code = -104 Token unknown - line 7, char 40 ; Statement: CREATE PROCEDURE getDogovor (id decimal) AS BEGIN IF (:id=0) THEN BEGIN SELECT * FROM dogovor d INNER JOIN postavshik p ON d.id_postav=p.id INNER JOIN tovar t ON d.id_tovara=t.id; END ELSE BEGIN select * from dogovor d inner join postavshik p on d.id_postav=p.id inner join tovar t on d.id_tovara=t.id where id=:id; END END С чего бы это ??? Или в интербейс нельзя набор записей возвращать ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2002, 22:29 |
|
В чем грабли с ХП ??
|
|||
---|---|---|---|
#18+
Точно не уверен, то мне так кажется, что эта ХП должа возвращать какие-то данные, а как !?!?!? Как я понимаю должна быть конструкция : create procedure GetDogovor(id integer) returns (OUT_ID integer, OUT_NAME varchar(20), OUT_DATE date) as begin select id, name, date from table where id=:id into :OUT_ID, :OUT_NAME, :OUT_DATE; suspend; end; может в suspend; прикол, а может то что не указывается во что выбирать ... попробуй, может поможет... сорри, если в чем-то был не прав ... alubetsky@mail.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2002, 08:40 |
|
В чем грабли с ХП ??
|
|||
---|---|---|---|
#18+
В процедуре, по крайней мере, должна быть конструкция into Select * from Dogovor Into :Field1, :Field2 и т.д. Число полей (Field ) должно быть равно числу полей в таблице Dogovor (т.к. ты написал Select *). Так же должна присутствовать конструкция Returns(...), где должны быть описаны эти поля ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2002, 20:06 |
|
В чем грабли с ХП ??
|
|||
---|---|---|---|
#18+
Выходит что с ХП нельзя полуцчить набор данных, тоесть несколько записей ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2002, 14:25 |
|
В чем грабли с ХП ??
|
|||
---|---|---|---|
#18+
По чему же нельзя? Ты скорее всего неправильно понял. Во-первых посмотри хп в демонстрационных базах(employe.gdb,customer.gdb) Ну вот пример простой хп. CREATE PROCEDURE SELECT_FIRMS RETURNS ( FirmId Integer, FIRMNAME VARCHAR(120)) AS BEGIN FOR SELECT OKEY, FIRMNAME, FROM FIRMS INTO :FirmId, :FIRMNAME, DO BEGIN SUSPEND; END END ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2002, 15:16 |
|
В чем грабли с ХП ??
|
|||
---|---|---|---|
#18+
Привет !!! еще раз ... Радуйся !!! Вот в IB как раз таки можно вернуть набор строк, а вот в Oracle нет !!! :(. Сейчас пишу под Oracle, сталкнулся с таким приколом !!! :(( в IB и MS SQL можно вернуть набор строк, так всем любителям этих СУБД, пользуясь случаем, привет :)) !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2002, 15:40 |
|
|
start [/forum/topic.php?fid=40&msg=32084737&tid=1580977]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 162ms |
0 / 0 |