Tema: Re: vartotojo įvestų duomenų sumavimas
Autorius: Anon
Data: 2010-11-18 10:14:47
Dėkui už patarimą, per naktį panašiai sumąsčiau - dabar tiesiog į 
užklausiamas lentele įrašus įpostinu galutinai su ApplyUpdates ir vykdau 
selecto užklausą susumavimui, jei netinka - išdeletinu tuos įrašus ir 
viskas. Gal tiks :)

Vytautas

"Dainius"  wrote in message news:ic2ls0$hp$1@trimpas.omnitel.net...

tai cia problema ne isolation level, o kad komponentas neturi reikalingu
duomenu.
Nes jei padarysi:

start trans
update set price=price+1
select sum(price)
commit

tai tos tranzakcijos ribose tu visus duomenis matai. O jei komponentas
neatsinaujina duomenu, tai cia reikia ziureti kaip ji patiuninti. Arba
daryti normalu select'a, tik turint omeny, kad neiseiti is tranzakcijos
ribu.

On 11/17/2010 04:48 PM, Anon wrote:
> Su UniDAC komponentu UniQuery, tas pats kas select'as :) Bet jis veikė
> tik su duomenimis, įpostintais į lentelę išjungus CachedUpdates savybę.
> Kai lentelei įjungiau tą savybę, užklausa duomenų nebepagauna - jie
> kažkur atminties buferyje sėdi iki ApplyUpdates komandos. Va ir klausiu,
> ar kas nežaidė su isolation leveliais :), gal žino kokį būdą kad tas
> pildantis kvitą klientas tuos duomenis pamatytų, o kiti - tik po
> ApplyUpdates komandos įvykdymo.
> Vytautas
>
> "Dainius" wrote in message news:ic0sr6$kj2$2@trimpas.omnitel.net...
>
> O kaip tu dabar skaiciuoji? Su sql selectu, ar kokiu nors kitu budu?
>
> On 11/17/2010 04:23 PM, Anon wrote:
>> Taip, tai bus tik tos pačios tranzakcijos ribose, bet kaip realiai
>> užklausai prieiti prie tų duomenų? Jei pasidarysiu isolation level , kad
>> užklausos matytų dar keše esančius pakitimus, kitas klientas,
>> prisijungęs prie serveryje esancios MySQL duombazės pamatys nepilną
>> įrašą pagrindinėje lentelėje, ko negalima... Atsiprašau jei durnai
>> klausiu, dar neteko praktiškai tokios situacijos turėt :(
>>
>> Vytautas
>>
>> "Dainius" wrote in message news:ic0oke$ego$1@trimpas.omnitel.net...
>>
>> Jei sumuosi tos pacios tranzakcijos ribose tai problemu neturetu buti.
>>
>> On 11/17/2010 12:42 PM, Anon wrote:
>>> Situacija tokia: yra kvitų pildymo programėlė, rašoma Delphi 2007.
>>> Naudoja UniDAC komponentus ir MySQL, pildymas vyksta tranzakcijos būdu:
>>> lentelėse update'ai kešuoti, pildymo pabaigoje tranzakcija užbaigiama
>>> įvykdžius ApplyUpdates komandą. Prieš tai reikia susumuoti visko kainą,
>>> bet dalis duomenų yra lentelėse, o kita dalis "kybo" tranzakcijoje
>>> (vartotojas rašo į dbGrid'us), ir užklausai kaip ir neprieinami... Kaip
>>> juos nusiskaityt ? Keisti isolaton level ? Pildymo metu kvito kitas
>>> vartotojas neturėtų matyti...
>>>
>>> Vytautas
>>
>