Здраствуйте! Помогите разобраться в чем дело!
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 т.е. на каждый должно быть по одной строке! Может я допускаю какуюто ошибку в работе с транзакциями??? Спасибо!