Tema: Re: vartotojo įvestų duomenų sumavimas
Autorius: Niekados
Data: 2010-11-18 10:53:15
Sveiki,
jai galit man pasakykit neisprususiam.
cia toks dalykas yra naudojamas tada kai formoje i DBedit lauka vedi tarkim 
kazkoki prekes(paslaugos) id ir jis is MySQL automatiskai susirenka likusia 
info (pavadinimas, kiekis, kaina ir taip toliau), atvaizduoja formoje 
atatinkamuose laukuose kaip dbtext ar dbgrid kur poto gali keisti tarkim 
kainas ar atlikti pardavima kaip minetam atvejui suformuoti kvita.
dar iskyla klausimas apie koki vaidmeni atlieka tranzakcijos ir ka jos 
tiksliai daro.


"Anon" <anon@pisem.net> wrote in message 
news:ic2n9n$2lo$1@trimpas.omnitel.net...
> 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
>>>
>>
>