Показать сообщение отдельно
Старый 28.07.2011, 11:50   #1  
JuniorAx is offline
JuniorAx
Участник
 
134 / 20 (1) +++
Регистрация: 20.07.2011
Адрес: Санкт-Петербург
Работа с транзакциями
Здраствуйте! Помогите разобраться в чем дело!
X++:
 real     sumEur, sumUsd,Coef;
    date     dt = systemdateget();// <-ïîëó÷àåì ñåãîäíÿøíóþ äàòó
    str      Eur, Usd, stVal;


    while select cur // Âûáèðàåì âàëþòû êîò. ÿâë óñëîâíûìè åäèíèöàìè
    where cur.UE == NoYes::Yes
     {
       stVal = cur.CurrencyCode; // Çàïîìèíàåì íàèìåíîâàíèå âàëþòû
       Coef  = cur.rate; // Çàïîìèíàåì êîýôôèöèåíò
       select excR
       where  excR.CurrencyCode == cur.CurrencyCodeParent
              && excR.FromDate == dt;
        {
           if (excR.CurrencyCode == enum2str(CurrencyUECod::EURcod))
           {
            sumEur = excR.ExchRate * Coef;
            ttsbegin;
            excR.FromDate = dt;
            excR.ExchRate = sumEur;
            excR.CurrencyCode = stVal;
            excR.insert();
            ttscommit;
           }
            else
             if (excR.CurrencyCode == enum2str(CurrencyUECod::USDcod))
            {
             sumUsd = excR.ExchRate * Coef;
             ttsbegin;
             excR.FromDate = dt;
             excR.ExchRate = sumUsd;
             excR.CurrencyCode = stVal;
             excR.insert();
             ttscommit;
            }
Вообщем почему когда я запускаю этот код, он в первый раз выводит по одной строке каждой усл. един. (допустим на сегодня), при последующих щапусках он выдает по 2 строки на каждую усл.ед. P.S. валют всего 2 т.е. на каждый должно быть по одной строке! Может я допускаю какуюто ошибку в работе с транзакциями??? Спасибо!