Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Получить данные в DataSet из пакета REF CURSOR


Автор: fanatic 10.6.2008, 15:21
Всем доброго дня

Создан пакет в ORACLE  в нем имеет место одна процедура с тремя параметрами out, тип возвращаемого значения - REF CURSOR. Вообще - вот сам пакет 

--CREATE PACKAGE 


    CREATE OR REPLACE PACKAGE ANIMALPETSPETBELONGING AS
    TYPE RESULTCURR IS REF CURSOR;

    PROCEDURE GETDATA(ANIMALCUR OUT RESULTCURR, 
    PETCUR OUT RESULTCURR, PETBELONGCUR OUT RESULTCURR);

    END ANIMALPETSPETBELONGING;


    CREATE OR REPLACE PACKAGE BODY ANIMALPETSPETBELONGING AS


    PROCEDURE GETDATA(ANIMALCUR OUT RESULTCURR, 
    PETCUR OUT RESULTCURR, PETBELONGCUR OUT RESULTCURR)

    IS 

    LOKALANIMALCUR RESULTCURR;
    LOKALPETCUR RESULTCURR;
    LOKALPETBELONGCUR RESULTCURR;

    BEGIN


    OPEN LOKALANIMALCUR FOR
    SELECT * FROM ANIMALS;
    
    OPEN LOKALPETCUR FOR
    SELECT * FROM PETS;

    OPEN LOKALPETBELONGCUR FOR
    SELECT * FROM PETBELONGING;
    

    ANIMALCUR := LOKALANIMALCUR;
    PETCUR := LOKALPETCUR;
    PETBELONGCUR := LOKALPETBELONGCUR;
    
END GETDATA;
END ANIMALPETSPETBELONGING;
/
COMMIT
/

вопрос: Как залить данные,которые возвращает процедура, в DataSet при помощи ADO.NET.

private void Form1_Load(object sender, EventArgs e)
        {
            OracleConnection connect = new OracleConnection(connectionstring);
            OracleCommand command = connect.CreateCommand();
           
            command.CommandText = "ANIMALPETSPETBELONGING.getdata('a','b,'c')";
            command.CommandType = CommandType.StoredProcedure;
                       
            OracleDataAdapter dataadapter = new OracleDataAdapter(command);
            dataadapter.Fill(AnimalsDataset);

        }

если делаю так - компилятор ругается...причем ругается странно...толком непонятно ничего...

 Если можно подскажите способ попроще выбрать определенные данные из нескольких таблиц БД в DataSet...Буду очень благодарен...

Всем спасибо

Автор: fanatic 11.6.2008, 08:36
Разобрался!!! Если кому - то интересно,решение находится http://www.gotdotnet.ru/Forums/Data/22574.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)