|
|
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
если может, то как ? Код: plaintext 1. 2. 3. 4. 5. 6. это, слава Богу, получается, но как сделать функцию, которая возвращала бы курсор ? (я работаю с Oracle 8i и VFP 8 SP1) спасибо заранее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 09:57 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
А что, разве так не работает: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 10:06 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
прошу прощения за неразбериху, я хтел сказать, что: Код: plaintext 1. 2. , но что делать, если я создам функцию типа Код: plaintext 1. 2. 3. 4. 5. (вместо вопросов должно быть что-то, но я не знаю что) вот. что мне сделать, чтобы потом получить этот селект с помощью SQLEXEC() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 10:17 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- Код: plaintext 1. 2. 3. 4. 5. вместо вопросов в селекте должен быть перечень задекларированных предварительно переменных... и курсор в Оракле, к сожалению не то же самое, что курсор в Фоксе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 11:01 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
это понятно, что фокс и оракл разные вещи.. ладно, допустим, я напишу в селекте перечень задекларированных предварительно переменных, но я же не смогу их все вернуть одним return-ом. наверняка есть способ вернуть курсор из PL/SQL-блока без фразы SELECT. (ну тоесть вернуть курсор в фокс из хранимой процедуры через SQLEXEC() ). ведь есть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 11:13 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--это понятно, что фокс и оракл разные вещи.. ладно, допустим, я напишу в селекте перечень задекларированных предварительно переменных, но я же не смогу их все вернуть одним return-ом. наверняка есть способ вернуть курсор из PL/SQL-блока без фразы SELECT. (ну тоесть вернуть курсор в фокс из хранимой процедуры через SQLEXEC() ). ведь есть ? как вернуть курсор я не знаю :-( а вернуть пару параметров: cSP = "{call Procedure(?InPutParameter1, ?InPutParameter2, ?@OutPutParameter1, ?@OutPutParameter2)}" = SQLExec(gnConnHandle, cSP) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 12:23 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
FM32YO aka KIDcSP = "{call Procedure(?InPutParameter1, ?InPutParameter2, ?@OutPutParameter1, ?@OutPutParameter2)}" = SQLExec(gnConnHandle, cSP) хе, вот это интересно. а фигурные скобки - это зачем ? или они в качестве begin-а и end-а ? а про REF CURSOR кто-нибудь что-нибудь знает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 13:04 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- FM32YO aka KIDcSP = "{call Procedure(?InPutParameter1, ?InPutParameter2, ?@OutPutParameter1, ?@OutPutParameter2)}" = SQLExec(gnConnHandle, cSP) хе, вот это интересно. а фигурные скобки - это зачем ? или они в качестве begin-а и end-а ? а про REF CURSOR кто-нибудь что-нибудь знает ? Скобки фигурные - это так надо вызывать процедуру.. почему - я не наю. . ибо сам так как и ты "научился" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 17:28 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Sqlexec может возвращать несколько наборов данных сразу... Sqlexec(nConnect, 'процедура на сервере', 'result1','result2','result3',...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 18:32 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Hi Eugene! > а про REF CURSOR кто-нибудь что-нибудь знает? А поиском слабо воспользоваться? Да, можно вернуть ref cursor- но для этого надо знать версию Oracle и используемый ODBC драйвер. Для Oracle 8.1.7 требуется на сервере пакет (чтобы описать тип ref cursor-а), также возврат его в виде собственно курсора возможен лишь через Oracle ODBC driver - MS драйвер отдыхает. Естественно что в самой ХП это будет команда open ... for select ... а никак не select ... into и сам курсор должен быть output параметром этой самой ХП (при вызове он не указывается). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 19:23 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
FM32YO aka KIDкак вернуть курсор я не знаю :-( вот смотри: так можно вернуть курсор из ХП Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. а потом на клиенте (Visual Foxpro) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 06:49 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
и еще, спецы с Ораклового форума говорят, что после того, как я сделаю OPEN "REF CURSOR" FOR SELECT ... , мне нужно его еще и закрыть с помощью CLOSE "REF CURSOR". но как мне его закрыть, если для сервера он уже потерян после выхода из процедуры ? они сказали, что на форуме VFP знают, как это сделать. вот например в мой предыдущий пост, я должен еще что-то дописывать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 07:03 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- FM32YO aka KIDкак вернуть курсор я не знаю :-( вот смотри: так можно вернуть курсор из ХП [src oracle]CREATE OR REPLACE package mypackage is type mytype is ref cursor; procedure myproc(result out mytype, myarg number); end mypackage; / ...... Thanks - буду знать.. хотя я как-то предпочитаю выборки делать посылом СЕЛЕКТА с клиента, а модификацию посылом команды на выполнение ХП на сервере.. ну так мне удобней и все тут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 09:07 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Ибо не вижу выгоды писать ХП для выборки. ИМХО гораздо проще написать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. и, потом вывести на форму данные из курсора 'PList' и работать с ним.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 09:13 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- они сказали, что на форуме VFP знают, как это сделать. Ну раз так, то держи: Код: 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. Код: plaintext 1. 2. P.S. Взято у "старших братьев" с UT Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 10:28 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Еще один пример для разнообразия: SP in Oracle: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 10:44 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 10:52 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Hi Eugene! А не надо его закрывать явно. ODBC драйвер сам всё разрулит. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 02:41 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, комрадз ! вот очередной мой идиотический вопрос: могу ли я единовременно "запихать" на Оракл фоксовый курсор каким-либо образом, а не передавать его построчно с помощью подобного кода: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 09:24 |
|
||
|
Разве Oracl-овая stored procedure не может вернуть курсор через SQLEXEC() ?
|
|||
|---|---|---|---|
|
#18+
Hi Eugene! 1) XML - в виде строки всё запихать, а уж на стороне сервера "развернуть" в ХП (пример лучше на соседнем форуме поищи/поспрашивай). 2) Гетерогенные сервисы (т.е. скинуть данные в dbf, а уж со стороны Oracle забрать их через ODBC) 3) bulk операции (можно конечно их и програмно инициировать) - но это насколько я помню идёт "мимо" ODBC, требует доступа к файловой системе сервера, и для реальной работы с данными непригодно - т.е. это для единовременных "вливаний данных" предназначено... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2005, 17:57 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33445797&tid=1592711]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 380ms |

| 0 / 0 |
