Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#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. На последней строчке выдается сообщение авторNo value given for one or more required parameters. 1) Чего не так и как поправить? 2) Можно примерчик где обрабатывается рекордсет возвращаемый из процедуры. (не 1 значение в качестве параметра а именно рекордсет) 3) Есть ли варианты получить рекордсет через параметры - например вот таким способом Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 10:31 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
А попробуйте-ка добавлять параметры не через .Append, а получите их с сервера .Parameters.Refresh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:05 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Петров Андрей2) Можно примерчик где обрабатывается рекордсет возвращаемый из процедуры. (не 1 значение в качестве параметра а именно рекордсет) Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:16 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Петров Андрей3) Есть ли варианты получить рекордсет через параметры - например вот таким способом Ну вы можете создать собственную функцию или класс. На входе будет массив или коллекция параметров, на выходе - рекордсет. Внутри все, что хочется инкапсулировать, от установки соединения до вызова процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:18 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
у вас строка соединения неправильная. поищите на connectionstrings.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:25 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Строка правильная... :-) проверено через WinSQL соединяется и выполняет запросы. Болше того строка с указанного сайта: авторDriver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword; Выдает ошибку: Could not resolve TNS в отличие от указаной в примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:43 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProА попробуйте-ка добавлять параметры не через .Append, а получите их с сервера .Parameters.Refresh Те можно их получить из процедуры? Оки пробуем... Код: plaintext 1. 2. 3. 4. 5. Так? Можно еще ссылочку/строчку как включить константы в код... А то тестовый VBA у меня их не знает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:54 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Shocker.ProПетров Андрей2) Можно примерчик где обрабатывается рекордсет возвращаемый из процедуры. (не 1 значение в качестве параметра а именно рекордсет) Код: plaintext 1. 2. 3. 4. 5. Имелся ввиду примерчип процедуры Oracle (ее описание) и код который выцепляет из нее рекордсет а не пример обхода рекордсета - это то и так понятно... Но все равно спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:57 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Ваш вопрос нельзя было трактовать иначе По Ораклу не спец... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 12:07 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Ну короче VBA говорит что ODBC не поддерживает Sys_RefCursor а именно рекордсет в качестве параметров или результатов процедуры. Обидно! Есть еще варианты вернуть рекордсет из процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 12:18 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Предлагаю вам тогда пойти в ветку по Ораклу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 12:19 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Петров АндрейСтрока правильная... :-) проверено через WinSQL соединяется и выполняет запросы. Болше того строка с указанного сайта: авторDriver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword; Выдает ошибку: Could not resolve TNS в отличие от указаной в примере. это потому что вы tns-name неправильное задаёте или у вас не настроен tnsnames.ora или вообще не установлен оракловый клиент. и что такое winsql? вы через udl-файлик протестируйте для начала и не забудьте сначала проверить соединение с ораклом с помощью tnsping и тд и тп а процедурки оракловые, чтобы могли возвращать рекордсет, котрой понимает микрософт должны быть описаны с возвратом курсора типа refcursor, объявленного в пакете оракловом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 12:23 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
[SQL]create or replace package ExtractPKG is -- Public type declarations Type EXTRACT_TYPE is REF CURSOR; end ExtractPKG; create or replace procedure UserAccess(USER_CURSOR OUT extractpkg.EXTRACT_TYPE) is sSQL varchar2(2000); begin sSQL := 'Select * from useraccess'; open user_cursor for sSQL; end;[/SQL] Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 12:28 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Конекчусь так, проблем не наблюдаю, данный вариант весьма неплох: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Также мне нравится работать с oo4o, с ним меньше всего траблов, когда нужно отправлять много информации на обработку, связанную с обработкой множества процедур и функций. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Более подробно и даже примерно нужно искать в оракловом oo4o, там много полезного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 12:59 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Ага всем спасибо - буду пробовать ставить ораклового клиента и перепроверюсь. Его есессно нету иначе не тестил бы на майкрософтовском драйвере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:12 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
2 Konst_One В примерчике параметр передается как out для процедуры. Если сделать функцию - переварит? Оно как бы логичнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:24 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
можно и паблик ф-ю оракловую, но ref cursor должен быть в описании пакета объявлен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:25 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Экспериментирую... Функция вида: Код: plaintext 1. 2. 3. 4. 5. ее вызов: Код: 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. Выдает: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:19 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
и на какой строке кода такое вам выдаёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:22 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
oCMD.NamedParameters = True oCMD.Parameters.Refresh не поможет, именованную коллекцию скорее всего не получите. придётся вам ручками создавать параметры и добавлять в Parameters. не забываем, что первым всегда должен быть параметр с именем RET с типом output ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:24 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:28 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Коллекцию я получаю без проблем. Падает на последней строке = Execute. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:29 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
TRefCursor - это что? описание из заголовка пакета привидите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:30 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:32 |
|
||
|
Вызов процедуры Oracle и возврат рекордсета (ADO)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. вот пример рабочего кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 15:36 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36565437&tid=2159961]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 124ms |

| 0 / 0 |
