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

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.06.2008, 15:49
|
|||
|---|---|---|---|
|
|||
Получение курсоров из PostgreSQL |
|||
|
#18+
Сообщений: 9 | оценить Возникла проблема с получением данных, курсоров, на стороне клиента из PostgreSQL: К примеру есть такая фуекция CREATE OR REPLACE FUNCTION "public"."get_cursor" ("pg_catalog"."refcursor", "pg_catalog"."refcursor") RETURNS SETOF "pg_catalog"."refcursor" AS $body$ BEGIN OPEN $1 FOR SELECT * FROM table_1; RETURN NEXT $1; OPEN $2 FOR SELECT * FROM table_2; RETURN NEXT $2; END; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; которая как видно возвращает два курсора однако не получается получить результат из клиента (пример кода на клиенте) DataSet ds = new DataSet(); using (NpgsqlCommand cmd = new NpgsqlCommand("", conn)) { cmd.CommandText = "Select * from Get_Cursor('a','bb')"; using (NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd)) { da.Fill(ds); } } в DataSet он записывает входные параметры функции ('a' и 'bb') а не данные взятые из таблиц Прошу подскожите как сделать так чтобы из функции можно было получать несколько наборов данных (несколько таблиц)http://] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2008, 07:01
|
|||
|---|---|---|---|
|
|||
Получение курсоров из PostgreSQL |
|||
|
#18+
Очень похоже на кальку из другой СУБД. В PostgreSQL так не делают, по крайней мере начинающие. Скажите, что вам нужно ? Я думаю решить можно проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2008, 09:59
|
|||
|---|---|---|---|
|
|||
Получение курсоров из PostgreSQL |
|||
|
#18+
Мне необходимо иметь возможность возращать из ХП несколько таблиц, для MS SQL и Firebird эти методы реализованы (как настороне сервера так и настороне клиента), а вот для с PostgreSQL все оказалось сложнее ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2008, 10:40
|
|||
|---|---|---|---|
|
|||
Получение курсоров из PostgreSQL |
|||
|
#18+
Кому интересно решение то вот оно (например фу-ия на сервере) CREATE OR REPLACE FUNCTION refcursor(i) RETURNS SETOF refcursor AS 'DECLARE ref1 refcursor; ref2 refcursor; BEGIN OPEN ref1 FOR SELECT * FROM table_1; RETURN NEXT ref1; OPEN ref2 FOR SELECT * FROM table_2; RETURN next ref2; RETURN; END;' LANGUAGE plpgsql; и на клиенете DataSet ds = new DataSet(); using (NpgsqlDataAdapter da = new NpgsqlDataAdapter((NpgsqlCommand)sqlCommand)) { da.SelectCommand.Transaction = (NpgsqlTransaction)sqlCommand.Connection.BeginTransaction(); da.Fill(ds); } return ds; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2004274]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 331ms |

| 0 / 0 |
