Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.10.2006, 11:24
|
|||
|---|---|---|---|
|
|||
конвертация refcursor -> setof |
|||
|
#18+
есть стороняя функция xxx.client_xxx- возвращает REFCURSOR У меня прога VFP и ODBC 7.03 не умеет работать с REFCURSOR Хочу написать конвертер refcursor2setof типа : drop FUNCTION experian.proba(); CREATE FUNCTION experian.proba() RETURNS SETOF record AS ' DECLARE declare r record; ref_1 refcursor ; BEGIN open ref_1 for select * from xxx.client_xxx(''3909'',''2006-10-12''); fetch ref_1 into r; return next r; END; ' LANGUAGE plpgsql; и немогу въехать как преоброзовать на стороне POSTGRE с REFCURSOR раньше не сталкивался .... Помогите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.10.2006, 19:09
|
|||
|---|---|---|---|
|
|||
конвертация refcursor -> setof |
|||
|
#18+
Как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2006, 11:37
|
|||
|---|---|---|---|
|
|||
конвертация refcursor -> setof |
|||
|
#18+
Спасибо J.W. Попробовал но получил вот такой ответ , ERROR: a column definition list is required for functions returning "record" похоже не соответсвие видов возвращаемого аргумента хочу получить setof как курсор а некак запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2006, 14:14
|
|||
|---|---|---|---|
|
|||
конвертация refcursor -> setof |
|||
|
#18+
Нужно указать тип полей для возвращаемых записей. Например, если курсор возвращаемый ф-ией xxx.client_xxx(), открывается для рекордсета с полями (ID int4, CODE varchar), то вызов должен выглядеть так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2006, 16:50
|
|||
|---|---|---|---|
|
|||
конвертация refcursor -> setof |
|||
|
#18+
Хочу получить одну колонку value select value from experian.test() as (value text) вот такая бяка : ERROR: control reached end of function without RETURN CONTEXT: PL/pgSQL function "test" Чего то я не догоняю ...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.10.2006, 18:46
|
|||
|---|---|---|---|
|
|||
конвертация refcursor -> setof |
|||
|
#18+
Видимо, рекордсет для курсора пустой, который возвращает xxx.client_xxx(). Чтобы не было ошибки в таком случае и возвращался просто пустой рекордсет - нужно исправить в функции на: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 10:23
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
У меня при такой конвертации пишет следующее: ERROR: wrong record type supplied in RETURN NEXT Код: plaintext 1. 2. 3. 4. .. в чём моя ошибка?? postgres 7.4.7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 11:30
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
J.W.Как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. Пропустили финальный RETURN: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 12:08
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
Нет, не в этом ошибка, ошибка в RETURN NEXT.. и финальный RETURN стоял.. ERROR: wrong record type supplied in RETURN NEXT КОНТЕКСТ: PL/pgSQL function "test_get" line 40 at return next ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 12:29
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
AcubedНет, не в этом ошибка, ошибка в RETURN NEXT.. и финальный RETURN стоял.. ERROR: wrong record type supplied in RETURN NEXT КОНТЕКСТ: PL/pgSQL function "test_get" line 40 at return next Покажите полный исходник функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 12:43
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#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. postgres 7.4.7 !! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 13:34
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
Попробуйте заменить: Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 13:38
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
Нет, не прёт .. синтаксическая ошибка .. скорей всего в 7,4,7 не поддерживается .. =( postgres 7.4.7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 13:40
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
Ну или может просто покажете как мне эти селекты вывести результатом процедуры? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.07.2007, 14:03
|
|||
|---|---|---|---|
конвертация refcursor -> setof |
|||
|
#18+
AcubedНу или может просто покажете как мне эти селекты вывести результатом процедуры? =) Бррр. Ну почему не сделать вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Далее в вашей программе (не знаю что там у вас delphi, c, php???) вызываете 2 SQL запроса в одной транзакции: 1. Код: plaintext 2. Код: plaintext Всё. Получаете свои данные. (Не забудьте после всего сделать СОММИТ, если надо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2005305]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 398ms |

| 0 / 0 |
