o GUID nepadetu? Ernikas "Anon" <anon@pisem.net> wrote in message news:icg792$uv3$1@trimpas.omnitel.net... > Ačiū dar kartą visiems, patarimus išklausiau, o dabar išbandysiu savo > variantą, jei nepasiseks - pakeisiu pagal tuos patarimus :) Aišku, > užlokinimas ilgam laikui negerai, bet kiek žinau, jei Delphi daromi > CachedUpdates ir lentos lockinimas optimistic, užlokinama tik įrašant > galutinius duomenis metodu ApplyUpdates, kas mažai laiko užima, o įrašus > vartotojai darys maždaug kas pusvalandį. Bandysiu :) > > Vytautas > > "Anon" wrote in message news:icg4fk$qi6$1@trimpas.omnitel.net... > > Ačiū už detalų paaiškinimą, šiuo metu visi rašymo veiksmai ir yra vienoje > tranzakcijoje. Tačiau įrašai pagr. lentelėje niekada nebus trinami(tik > galima atžymėti įrašą kaip negaliojantį), visi bus kopinami į backupą, > metų > gale lentelės backupinamos, išvalomos ir vėl iš pradžių :). Dėl numeravimo > iš eilės gal ne taip svarbu, kokia bus eilė, ar bus praleistų numerių, > svarbu įrašo numerio unikalumas. O pagal mano siūlytą veiksmų tvarką > vartotojas pirma turi papildyti įrašą(padidinti įrašą vienetuku), po to > pasiimti, tuo metu numerio lentelė lockinta, kitas vartotojas negalės tuo > metu į ją rašyti, o tuo pačiu ir pasiimti to paties numeriuko. Lyg ir > nematau logikos klaidų, gal kas mato ? > > Vytautas > > > "2x50" wrote in message news:icg1i6$ls3$1@trimpas.omnitel.net... > > Sveiki, > > as kaip duombazistas tai galeciau tik patarti isnaudoti visas dbvs > siulomas > galimybes. Jei dbvs turi transakciju valdymo mechanizma, tai reiketu ji ir > panaudoti. Jei aplikacijoj vartotojo atliktas veiksmas sukuria irasa 3jose > lentelese, tai visu siu irasu sukurimas turetu buti vienoje transakcijoje. > Be to, pirmiausiai irasas turi buti sukurtas master lentoj, o tik veliau > detail lentose, o ne atvikrsciai. Taip pat tos lentos turetu tureti PK ir > FK > constraint'us. > Del numeravimo is eiles, tai siulau tai pamirsti ir daugiau neprisiminti, > ypac kai yra konkurentines transakcijos. Kodel? > 2 paprasti klausimai. > Vartotojas V1 pradeda transakcija T1, jam priskiriamas numeriukas 1. Is > karto po jo varototjas V2 pradeda transakcija T2 (kol T1 dar nera > pasibaigus), kuriai priskiriamas numeris 2. Vartotojas V1 nutraukia > transakcija T1. Pirmas klausimas - ka daryti su numeriu 2 transakcijoj T2? > Antras klausimas - ka daryti su numeravimu "is eiles" lenteleje, kai is > jos > irasas istrinamas? > Atsakius i siuos klausimus isvada turetu buti "jo, neverta terliotis"... > t.y. mano pasiulymas yra naudoti AutoIncrement (galima ir is savo > lenteles, > ner skirtumo) ir visus irasus visose susijusiose lentelese daryti tos > pacios > transakcijos metu... > > "Anon" <anon@pisem.net> wrote in message > news:icfrf5$av0$1@trimpas.omnitel.net... >> Na, turiu dar vieną klausimą iš Delphi + MySQL :) Į lentelę įterpinėja >> įrašus apie 20 vartotojų, įrašams reikalinga suteikti unikalų numerį, >> kurie didėtų iš eilės, nuosekliai. AutoIncrement tipas netinka - dirbama >> per cached updates, lockingas optimistinis, numeris reikalingas įrašyti į >> kitas 3 lenteles prieš užfiksuojant pagrindinėje, o AutoIncrement'as >> suveikia tik po komandos ApplyUpdates. Žodžiu, ar veiktų toks metodas: >> atskiroje lentelėje laikomas 1 įrašas su vienu numerio lauku(pradžioj Nr >> yra 0) , kuriantis pagr. lentelėje įrašą vartotojas užlockina lentelę su >> numerio lauku, padidina numerį vienetu, pasiima jį ir nuima lockinimą. Tą >> patį daro ir kiti. O gal čia aš dviratį išradinėju? IŠ anksto ačiū >> patarusiems. >> >> Vytautas >