Показать сообщение отдельно
Старый 28.08.2013, 11:19   #13  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
К сожалению, так и не добавили логический XOR, приходится использовать бинарный ^. Кстати, если кто вдруг не в курсе, бинарные && и || не вычисляют второй операнд, если первый уже однозначно определяет результат. Ну это во всех языках одинаково.
Пример:
X++:
public boolean updateSuccessful(SalesId _salesId)
{
    SalesTable salesTable;
    boolean ret = true;
    ;

    try
    {
        ttsBegin;

        select forUpdate salesTable
            where salesTable.SalesId == _salesId;
        ...
        salesTable.update();

        ttsCommit;
    }
    catch (Exception::Error)
    {
        ttsAbort;
        ret = checkFailed("Unknown error while updating");
    }
    return ret;
}

public void execute()
{
    // Если init() вернет false, второй метод не вызовется
    // если в любом случае нужно вызывать updateSuccessful(), надо использовать одиночный &
    if (this.init() && this.updateSuccessful(salesId))
    {
        this.run();
    }
}
__________________
// no comments