Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить данные в DataSet из refcursor-a, БД PostgreSQL 
:(
    Опции темы
SAVe
Дата 17.7.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Здравствуйте.

Столкнулся с проблемой при получении данных на клиенте с сервера. Используется БД PostgreSQL 8.7.3. Для работы с ней на клиенте использую провайдер Npgsql.

Есть функция на стороне сервера заполняющая refcursor:
Код

create or replace function StatisticsData(...)
returns refcursor as
$BODY$
declare     
rc refcursor := 'dataCursor';
Begin
open rc for
select...from ... ;
return rc;
End;
$BODY$
language plpgsql;


Следующий запрос правильно отрабатывает и возвращает данные:
Код

select  StatisticsData(...);
fetch all from "dataCursor";


На клиенте пытаюсь заполнить DataSet: 
Код

Npgsql.NpgsqlConnection conn = new NpgsqlConnection("....");     

Npgsql.NpgsqlCommand cmd = new NpgsqlCommand();            
cmd.CommandText = "StatisticsData";            
cmd.Connection = conn;            
cmd.CommandType = System.Data.CommandType.StoredProcedure;

Npgsql.NpgsqlParameter param = new NpgsqlParameter(....);            
cmd.Parameters.Add(param);            
.....            
Npgsql.NpgsqlDataAdapter nda = new NpgsqlDataAdapter(cmd);            
DataSet ds = new DataSet();            
conn.Open();            
Npgsql.NpgsqlTransaction tran = conn.BeginTransaction();            
nda.Fill(ds);            
tran.Commit();            
conn.Close();


В результате получаю таблицу с одной колонкой и одной строкой с названием курсора. Т.е. таблица с колонкой statisticsdata в которой одно значение - dataCursor. То же самое получается если на сервере выполнить запрос:

Код

select  StatisticsData(....);


Собственно проблема в том как получить данные из курсора, а не его название ?

PM MAIL   Вверх
SAVe
Дата 20.7.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Проблема решена. Решение тут
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.