|
|
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
Было уже.. сергей_Ч показывал примеры.. но все же.. сдаюсь... Коннект к Ораклу идет через Oracle ODBC Driver На сервере есть процедура: Код: 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. 31. 32. 33. 34. Вызываю ее из СКЛ+ Код: plaintext 1. 2. 3. 4. 5. получаю: Код: plaintext Вызываю ее из ВФП 7 Код: plaintext 1. 2. 3. Получаю "неверное количество или тип аргументов функции Get_VidrFetch" Ну да хрен с ним.. видимо переменную типа Рефкурсор надо хитко как-то объявлять?? Хотя нашел совет, что в таком случае ее можно просто опустить... т.е. не указывать: Код: plaintext не помогло.. та же ошибка.... Фиг с ней.. идем другим путем, совсем уж прямолинейным: Код: plaintext 1. 2. посмотрели какая строка сформировалась Код: plaintext при помощи SQL-monitor параллельно отслеживаю, что же послано было на сервер... вижу: Код: plaintext 1. 2. 3. 4. 5. 6. УРА ХП ж выполнилась!!!!! добавляю: Код: plaintext 1. получаю Код: plaintext 1. Что это??? То ли лыжи не едут.. то ли.... запарился уже..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 13:46 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. получаю Код: plaintext 1. Что это??? То ли лыжи не едут.. то ли.... запарился уже.....[/quot] а просто brows, если следующей строкой после исполнения ХП его поставить что показывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 13:53 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
ORAselect а просто brows, если следующей строкой после исполнения ХП его поставить что показывает? та же самая ошибка 13 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 13:57 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
А можно вопросик, не относящийся к FoxPro? Что ты хочешь получить из этой процедуры? Ты что, надеешься, что она будет выводить текст на экран, так же, как в sql*plus? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 16:15 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
4 дня назад, сам не знаю как, но мне удалось вернуть курсор на фокса... но что-то я потом сдалал.. и.. уже но получается... tru55Что ты хочешь получить из этой процедуры? Нет!!! получался, и должен получиться в фоксе курсор (временная таблица) с такой вот выборкой: Код: plaintext 1. 2. 3. Мне нужно не посылать с клиента напрямую сей запрос на сервер, чтобы получить эту выборку (прямой селект - получается и это не сложно...) Я хочу сделать это через процедуру... знаю, что это возможно но.. вот и грабли.... авторТы что, надеешься, что она будет выводить текст на экран, так же, как в sql*plus? типа наехали??? Да ну тебя :)) вот, что я хочу реализовать к примеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 16:42 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
на всякий случай :) http://www.sql.ru/forum/actualthread.aspx?tid=346516#3224960 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 16:47 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
tru55А можно вопросик, не относящийся к FoxPro? Что ты хочешь получить из этой процедуры? Ты что, надеешься, что она будет выводить текст на экран, так же, как в sql*plus? Код: plaintext 1. 2. 3. 4. в Код: plaintext В том-то и загвоздка (или мое торможение), что в СКЛ+ данные есть, а то же самое через ОДБС - данных нету.... В этом помощи хочууууу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 16:54 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#18+
tru55на всякий случай :) http://www.sql.ru/forum/actualthread.aspx?tid=346516#3224960 да, я выше пояснил.. зачем вставил в процедуру DBMS_OUTPUT.put_line... Не нашел иного варианта как проверить дает ли она что-нибудь в самом оракле... была попытка так же вызывать другую процу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 17:00 |
|
||
|
Oracle SP, Refcursor, ODBC
|
|||
|---|---|---|---|
|
#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. Пакет создан Вызываем его из ВФП под пользователем invent, который есть создатель/владелец пакета: Код: plaintext 1. 2. 3. 4. 5. 6. Получили нужный набор данных (курсор с несколькими записями) Результат трассировки (в SQL-Monitor): Код: plaintext 1. 2. 3. Передадим право на выполнение пакета другому пользователю: Код: plaintext проверим, вызывается/выполняется ли пакет под пользователем user02: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. == Работает!!!! Для 100%-й уверенности, что процедура отработала и вернула мне набор значений - делаем еще одну проверку: Код: 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. Результат налицо: Код: plaintext 1. Курсор с такими же данными я получил в ВФП-шное клиентское приложение, когда запускал через ОДБС данный пакет (только под коннектом владельца пакета) Теперь запувкаю тот же пакет под пользователем user02, точно так же: Код: plaintext 1. 2. 3. 4. 5. 6. Курсор fmc не сформировался... трассировка показала: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. то есть.. каким-то непостижимым образом мой паарметр noVal1 = '', передался в процедуру как '' И, ИМХО именно из-за такой "пляски" в передаче параметра пакет не выполняется под другим пользователем (отличным от владельца пакета) Может кто-нибудь подсказать - в чем же грабли-то????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 09:06 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34038524&tid=1590613]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 320ms |

| 0 / 0 |
