Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[BCB] Višeklijentsko brojanje u bazi podataka

[es] :: C/C++ programiranje :: [BCB] Višeklijentsko brojanje u bazi podataka

[ Pregleda: 1401 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon [BCB] Višeklijentsko brojanje u bazi podataka06.05.2010. u 12:17 - pre 170 meseci
Imam problem koji me muči već neko vrijeme pa ako itko ima iskustva s time bio bih zahvalan. Naime, napravio sam jednu DB klijent aplikaciju koja se koristi u konkurentnom višeklijentskom okruženju (svi odjednom mogu pristupiti svim zapisima). Aplikacija treba generirati neke potvrde koje u zaglavlju imaju serijski broj. Svaki put kad se izda nekakva potvrda onda se serijski broj poveća za 1 (serijski broj se zapisuje u bazu). I to bi bilo sve super da aplikaciju ima samo jedan korisnik, ali njih je uvijek minimalno 6 koji rade paralelno s tom bazom i svi žele generirati potvrde. I sad je moj problem kako zapravo osigurati da se serijski brojevi generiraju ispravno tj. jedan po jedan bez obzira na višeklijentski rad i konkurentnost.

Zapravo, problem podsjeća na threading i kritičnu sekciju u kojoj treba povećati serijski broj za jedan, ali ovo je na nivou baze pa bi trebalo nekako ručno jednom korisniku dopustiti da izda potvrdu (i generira sljedeći serijski broj) pa da onaj sljedeći korisnik vidi taj novi serijski broj i generira sljedeći itd... Nadam se da ste me razumijeli.. Treba bi zapravo ono što je ID (autonumber), ali koliko sam primjetio autonumber se ponaša čudno i nekada kreće brojati od početka a nekada odostraga itd.. i to mi nije pouzdano. Ideje?

Inače, koristim BCB i ADO. Hvala
 
Odgovor na temu

RF MasterX
RS

Član broj: 258871
Poruke: 197

Sajt: www


+16 Profil

icon Re: [BCB] Višeklijentsko brojanje u bazi podataka06.05.2010. u 15:37 - pre 170 meseci
Pa to znaci da ne trebas koristiti Autonumber vec trebas napraviti posebnu kolonu u kojoj ce
aplikacija upisivati broj i eventualno informaciju o tome da podatke u tom row-u trenutno upisuje
neki klijent ili ne, ja sam pre nekoliko godina pisao Telefonski imenik i imao sam probleme sa
Autonumber a to reshih na isti nachin koji sam predlozio tebi.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: [BCB] Višeklijentsko brojanje u bazi podataka06.05.2010. u 16:44 - pre 170 meseci
To ne radi ako više klijenata u isto vrijeme pristupi jednom zapisu. Usto, klijenti imaju tek kopiju podataka u aplikaciji a tek na update se spajaju na bazu.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [BCB] Višeklijentsko brojanje u bazi podataka06.05.2010. u 17:07 - pre 170 meseci
Pretpostavljam da bi tu trebalo da postoji neka stored procedura kojoj je posao da ubaci novi slog tako da na odgovarajućem mestu ubaci i odgovarajući serijski broj. U toj stored proceduri bi mogao da držiš brojač u jednoj posebnoj tabelici, i da inkrementiraš taj brojač sa svakom transakcijom.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: [BCB] Višeklijentsko brojanje u bazi podataka06.05.2010. u 17:23 - pre 170 meseci
Ne bih volio uvoditi stored procedure ako to baš nije nužno jer pokušavam da aplikacija bude neovisna od baze. No ako baš treba može i tako jer je baza SQL Server 2005 (standard edition).
 
Odgovor na temu

[es] :: C/C++ programiranje :: [BCB] Višeklijentsko brojanje u bazi podataka

[ Pregleda: 1401 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.