Показать сообщение отдельно
Старый 15.02.2007, 13:45   #8  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Jabberwocky Посмотреть сообщение
Попробуйте так:
X++:
queryRun.setCursor(common);
Попробовал. Как и требовалось доказать, не работает, поскольку setCursor() передает курсор, а не извлекает.

Т.е. приведенный ниже код
X++:
RecordViewCache prepareCalcTransBuffer()
{
    BOMCalcTransMap     buffer = this.calcTransBuffer();
    Query               query = this.calcTransQuery();
    QueryRun            queryRun;
    ;

    queryRun = new QueryRun(query);
    queryRun.setCursor(buffer);

    rvcCalcTrans = new RecordViewCache(buffer);

    return rvcCalcTrans;
}
бессмысленен и выдает, как и прежде, ошибку "The cursor is invalid for instantiating recordViewCache".

В противоположность этому, вот такой вариант работает:
X++:
RecordViewCache prepareCalcTransBuffer()
{
    BOMCalcTrans    buffer;

    select noFetch buffer
        where buffer.PriceCalcId    == priceCalcId;

    rvcCalcTrans = new RecordViewCache(buffer);

    return rvcCalcTrans;
}
, но недостаточно абстрагирован.

Ладно, я все понял. Либо сделать то, что я хочу, невозможно, либо никто не знает.

Последний раз редактировалось EVGL; 15.02.2007 в 13:54.