|
|
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
Привет. Есть строго типизированный DataSet и TableAdapter. В этом TableAdapter определен запрос. Мне нужно, чтобы при вызове этого запроса, значала бы вызывалась хранимая процедура. Причем и запрос и процедура должны быть вызваны в рамках одной сессии. Может кто сталкивался, подскажите как быть ? Спасибо. P.S. БД - Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2007, 14:23 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
А почему бы этой процедуре после выполнения не вернуть курсор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2007, 14:54 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
Мне нужно DataTable заполнить, курсором это получится сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2007, 15:07 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
SilbermannМне нужно DataTable заполнить, курсором это получится сделать ? А чем, на Ваш взгляд, отличаются запрос и процедура в плане возвращения записей пользователю? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2007, 09:05 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
Вопрос, уже, наверно, из другой оперы, но все же, не получается вернуть функцией курсор, делаю по документации, код тоже оттуда: CREATE PACKAGE emp_actions AS TYPE EmpRecTyp IS RECORD (emp_id INT, salary REAL); CURSOR desc_salary RETURN EmpRecTyp; FUNCTION nth_highest_salary (n INT) RETURN EmpRecTyp; END emp_actions; CREATE PACKAGE BODY emp_actions AS CURSOR desc_salary RETURN EmpRecTyp IS SELECT empno, sal FROM emp ORDER BY sal DESC; FUNCTION nth_highest_salary (n INT) RETURN EmpRecTyp IS emp_rec EmpRecTyp; BEGIN OPEN desc_salary; FOR i IN 1..n LOOP FETCH desc_salary INTO emp_rec; END LOOP; CLOSE desc_salary; RETURN emp_rec; END nth_highest_salary; END emp_actions; И как теперь обратиться к этой функции в запросе, чтобы вернуть таблицу данных ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2007, 13:29 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
Если обращаться к ней вот так: select emp_actions.nth_highest_salary(5) from dual То пишет ORA-00902: invalid datatype ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2007, 05:45 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
нужно возвращать не record, а ref cursor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2007, 11:05 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
SilbermannЕсли обращаться к ней вот так: select emp_actions.nth_highest_salary(5) from dual То пишет ORA-00902: invalid datatype так нельзя если хочешь как таблицу использовать результат ХП, то это делается подругому, нужно объектные типы создавать и конвеекрные/табличные функции. потом в запросе использовать table, cast а что твоя функция должна возвращать? сейчас она возвращает одну строку, зачем цыкл (bulk collect есть, если ты хочешь верныть бульше одной строки, тебе нужно массив записей создавать, даже не записей а объектов)? Возвращай реф курсор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2007, 11:41 |
|
||
|
TableAdapter - вызов процедуры перед запросом
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. что то типа этого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2007, 11:51 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=97&tid=1352885]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 359ms |

| 0 / 0 |
