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

Kako uraditi slijedece sa Generatorom

[es] :: Pascal / Delphi / Kylix :: Kako uraditi slijedece sa Generatorom

[ Pregleda: 4627 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

smjesko
Niko Nikogovic
bangladesh

Član broj: 18272
Poruke: 358
*.bih.net.ba.

Sajt: www.autotuning.ba


+1 Profil

icon Kako uraditi slijedece sa Generatorom19.05.2005. u 17:44 - pre 230 meseci
Imam jednu tabelu koja ima recimo dva polja, redni broj (generator) i vrijednost npr.
broj vrijednost
1 5
2 4
3 2

kada iz ove tabele izbrisem npr broj 2 ona izgleda ovako
broj vrijednost
1 5
3 2

ostaje broj 1 i 3, kako da uradim da mi to sve preslaze po redosljedu da nemam tih "supljina" vec da bude 1,2,3,4....

Koristim delphi i interbase
Ako neznas pitaj... ako mozes pomozi..
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.ptt.yu.



+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom19.05.2005. u 18:54 - pre 230 meseci
Sa Firebirdom moze ovako (valjda moze i sa IB):

Napravi AfterDelete trigger za tu tabelu:

CREATE TRIGGER ime_triggera FOR ime_tabele active after delete AS
update ime_tabele set broj=broj-1 where broj>old.broj
 
Odgovor na temu

smjesko
Niko Nikogovic
bangladesh

Član broj: 18272
Poruke: 358
*.bih.net.ba.

Sajt: www.autotuning.ba


+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom19.05.2005. u 20:39 - pre 230 meseci
pokusao sam da napisem: CREATE TRIGGER "brisanje" FOR "RACUN" ACTIVE after delete AS update RACUN set broj=broj-1 where broj>old.broj

ali neradi jbga imal jos tko kakvu ideju?
Ako neznas pitaj... ako mozes pomozi..
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.84.EUnet.yu.



+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom19.05.2005. u 22:55 - pre 230 meseci
Ne javljam se sa idejom :) vec sa pitanjem koji smisao ima to polje, ako mu je vrednost tako promenjiva. Nije valjda da to koristis da bi prilikom prikaza u programu imao redne brojeve?

Ako zamislimo da tvoj program radi sa puno radnih stanica istovremeno, i da ima brisanja ovakog kako ti ljudi predlazu, dolazi do potencijalnog zakljucavanja dobrog dela slogova tabele koji ostaju blokirani (hard lock) do kraja transakcije, praveci problem drugim transakcijama koje istovremeno pokusavaju to isto da urade, dovodeci u pitanje performanse celog sistema. Da ne pominjemo sta se desava sa korisnicima koji su vec ucitali podatke i imaju pogresnu sliku o podacima, jer dok oni gledaju tabelu redni brojevi mozda vise nisu ni validni. Naravno ovo sve vazi za sistem gde vise korisnika pristupa istovremeno bazi, cega kod teba mozda i nema tako da mozes i da preskocis upozorenje. Ali mozda je korisno onima koji imaju pomenuto okruzenje (vise korisnika na jednoj bazi).

Znaci ako je za redne brojeve nadji drugo resenje. Recimo napravi InternalCalc polje (ClientDataSet) ako koristis troslojni princip (pa makar u 2-tier aplikaciji) pa u njemu drzi redni broj. Ima jos resenja.
 
Odgovor na temu

smjesko
Niko Nikogovic
bangladesh

Član broj: 18272
Poruke: 358
*.bih.net.ba.

Sajt: www.autotuning.ba


+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom19.05.2005. u 23:03 - pre 230 meseci
ako ces iskreno to polje je redni broj racuna, napravio sam pc kasu i svaki racun ima svoj redni broj, sada pravim programcic da bi mogao da obrisem "pokoji" racun al naravno da mi preslaze redne brojeve, nema radnih stanica vec je samo jedan racunar imas li kakvu ideu kako bi to mogao da rijesim?
Ako neznas pitaj... ako mozes pomozi..
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.84.EUnet.yu.



+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom19.05.2005. u 23:12 - pre 230 meseci
Nadam se da si predvideo da racuni koji su izdati ne smeju menjati redni broj (bar koliko ja znam :)) Brisanje ima smisla mozda samo za zadnji racun, ali onda ne moras nista da preslazes samo uzmes ponovo taj broj. Mozes i da posle brisanja izvrsis upit koji radi izmene brojeva ili uradi trigger pa kud puklo :)

Code:

Set term ^;
CREATE TRIGGER brisanje FOR RACUN
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
  update RACUN set RACUN.broj=RACUN.broj-1 where RACUN.broj>old.broj;
END^
 
Odgovor na temu

staleks
Aleksandar Stoisavljevic
Java Technical Team Leader
Novi Sad

Član broj: 10869
Poruke: 59
*.neobee.net.

Sajt: www.staleksit.in.rs


+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom20.05.2005. u 00:01 - pre 230 meseci
Milos je u pravu, moras da znas da u finansijskom poslovanju nema brisanja ( DELETE zaboravi ), jedino je dozvoljeno storniranje a to je onda druga prica, imas dodatno polje storno u tabeli racuni i to je to, ako je 1 onda znas da je storniran i storniras sve stavke tog racuna, kraj price.

Pozdrav
 
Odgovor na temu

smjesko
Niko Nikogovic
bangladesh

Član broj: 18272
Poruke: 358
*.bih.net.ba.

Sajt: www.autotuning.ba


+1 Profil

icon Re: Kako uraditi slijedece sa Generatorom20.05.2005. u 00:52 - pre 230 meseci
ma to je druga stvar kako cu ja zavrsiti sa FIN. nebitno :) uglavnom radi TNX Milos :)
Ako neznas pitaj... ako mozes pomozi..
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Kako uraditi slijedece sa Generatorom20.05.2005. u 15:32 - pre 230 meseci
U trigeru prvo povecaj sve brojeve za veliki broj (za vise redova velicina veci od njih),
npr milion, a zatim ih umanji za milion i jedan.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako uraditi slijedece sa Generatorom

[ Pregleda: 4627 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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