RFD и Oracle
От: Avos Беларусь  
Дата: 25.10.05 11:27
Оценка:
Добрый день всем!

Хочу использовать RSDN.Framework.Data и Rsdm.Framework.DataAccess в проекте, но БД там Oracle 10G

Отсюда и вопрос: нормально ли они взаимодействуют и нет ли каких ограничений?

Собственно, сама ситуация такая:
пытаюсь создать бизнес-объект путем выхова следующей ХП:


 function Get_Dic_Info(i_nDicId in NUMBER) return SYS_REFCURSOR is
    curOut SYS_REFCURSOR;
  begin
    --if i_nDicId is NULL then get into cursor all data
    if i_nDicID is NULL then
      open curOut for
        select dic_id
             , dic_name
             , dic_type
             , dsc
          from dic;
    --get into cursor data for specified ID
    else
      open curOut for
        select dic_id
             , dic_name
             , dic_type
             , dsc
          from dic
            where dic_id = i_nDicId;
    end if;
    --return cursor
    return curOut;
  end Get_Dic_Info;

  procedure Get_Dic_Info(o_cur out SYS_REFCURSOR
                       , i_nDicId in NUMBER
                        ) is
  begin
    o_cur := Get_Dic_Info(i_nDicId);
  end Get_Dic_Info;


как правильно использовать RFD в таком случае?

Пытаюсь это сделать следующим образом:


DicRow tmp = (DicRow)DbManager.SetSpCommand(SP_GetList, id).ExecuteObject(typeof(DicRow));


не работает, говорит, что SystemError.


Помогите!

Заранее спасибо!

Avos
Re: RFD и Oracle
От: IT Россия linq2db.com
Дата: 26.10.05 00:58
Оценка:
Здравствуйте, Avos, Вы писали:

A>не работает, говорит, что SystemError.


Полный текст ошибки и stack trace можно привести?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: RFD и Oracle
От: Avos Беларусь  
Дата: 26.10.05 09:39
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Avos, Вы писали:


A>>не работает, говорит, что SystemError.


IT>Полный текст ошибки и stack trace можно привести?


Уже разобрался, спасибо!

оказывается его так надо пользовать (по крайней мере у меня так получилось):

manager.OutputParameter(ORACLE_PARAMETER_CURSOR_NAME, 
                            new OracleParameter(ORACLE_PARAMETER_CURSOR_NAME, OracleType.Cursor, 0, ParameterDirection.Output, true, 0, 0, "", DataRowVersion.Default, DBNull.Value))

то есть вручную добавлять необходимый output параметр
равно как и остальные параметры.

вот!

Avos
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.