RETURNING
От: Блудов Павел Россия  
Дата: 30.04.08 00:26
Оценка: 28 (1)
#Имя: FAQ.rfd.oracle.returning
Здравствуйте, Odi$$ey, Вы писали:

OE>А почему запись вставляется, в БД ID наращивается, но после выполнения msg.ID все равно 0?


OE>
OE> using(DbManager db = new DbManager())
OE>    {
OE>        db
OE>            .SetCommand(@"
OE>                      INSERT INTO SUP_AUDIO_MESSAGE
OE>                            ( ID, CALL_ID ) 
OE>                      VALUES 
OE>                            ( SUP_AUDIO_SEQ.NEXTVAL, :CALL_ID )
OE>                      RETURNING ID INTO :ID", 
OE>                  db.CreateParameters(msg))
OE>      .ExecuteNonQuery();
OE>    }
OE>


Мда, телепатический модуль BLToolkit'а нужно переписывать с нуля.

А пока можно явно указать, что параметр ID должен вернуться с сервера.
Кстати, то, что его нужно отмапить обратно в msg тоже нужно указать явно:

using(DbManager db = new DbManager())
{
    db
        .SetCommand(@"
                    INSERT INTO SUP_AUDIO_MESSAGE
                        ( ID, CALL_ID ) 
                    VALUES 
                        ( SUP_AUDIO_SEQ.NEXTVAL, :CALL_ID )
                    RETURNING ID INTO :ID", 
                db.CreateParameters(msg, new string[] { "ID" }, null, null))
        .ExecuteNonQuery(msg);
}


Дополнительные примеры можно подсмотреть здесь.
... << RSDN@Home 1.2.0 alpha 2 rev. 872>>
bltoolkit rfd oracle returning
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.