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

Uloga Trigera u Accessu

[es] :: Access :: Uloga Trigera u Accessu

[ Pregleda: 3775 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
*.adsl.sezampro.yu.



Profil

icon Uloga Trigera u Accessu20.11.2006. u 13:15 - pre 211 meseci
-Na INSERT u jednu tabelu radi UPDATE na drugoj tabeli.

Ako je aplikacija u C#, a baza u Accessu, kako je najpametnije
ostvariti ulogu Triggera? Da li aplikacija treba to da odradi ili postoji nacin
da se uradi 'blize' bazi?

Pozdrav!



[Ovu poruku je menjao diplIng dana 20.11.2006. u 20:14 GMT+1]
Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Uloga Trigera u Accessu21.11.2006. u 14:29 - pre 211 meseci
Ako je baza zaist u Accessu (MDB) onda trigeri ne postoje, Sve moras da uradis na nivou aplikacije. medjutim, ima jedno interesantno pitanje, koje mozda posvetli malo problem: Zasto bi INSERT u jednoj tabeli izaizvao UPDATE u nekoj drugoj tabeli? Ako nam odgovoris, mozda te ubedimo da odustanes od UPDATE i tako ce tvoj problem nestati.

:-)
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl.static.sezampro.yu.



+1 Profil

icon Re: Uloga Trigera u Accessu21.11.2006. u 14:44 - pre 211 meseci
Mozda čovek nikad nije koristio referencijalni integritet u relacijama pa mu treba nešto tako.

http://www.webopedia.com/TERM/R/referential_integrity.html


Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

colke77
Dragan Colić
Beograd

Član broj: 74309
Poruke: 193
195.252.107.*



+12 Profil

icon Re: Uloga Trigera u Accessu21.11.2006. u 14:45 - pre 211 meseci
Ja sam naisao na takvu potrebu. Slazem se da je to nelogicno, ali kad moras da nastavis tamo gde je neko stao, nemas alternative i onda ostaje samo da se trigeri "simuliraju" programski (iz koda).
Idemo dalje
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Uloga Trigera u Accessu21.11.2006. u 15:03 - pre 211 meseci
Citat:
Slazem se da je to nelogicno, ali kad moras da nastavis tamo gde je neko stao, nemas alternative i onda ostaje samo da se trigeri "simuliraju" programski (iz koda).

Slazem se absolutno. Ako ti zaista treba nesto sto lici na triger, back end je Access, to mora na nivou aplikacije. Drukcije ne moze.

Kad se DiplIng javi, znacemo na cemu smo. Postoje dve opcije: ako ne moze da se menja back end, sledi imitiranje trigera na nivou front enda. Ako moze da se menja back end, mozda moze da se eliminise potreba za trigerom.
 
Odgovor na temu

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
212.200.219.*



Profil

icon Re: Uloga Trigera u Accessu21.11.2006. u 23:09 - pre 211 meseci
Problem sam ranije postavio na:

http://www.elitesecurity.org/t218123-Jos-faktura-uplata

Naime, na unos nove fakture (INSERT INTO FAKTURE), Faktura.Iznos dodaje se u polje Promet.Dugovanje (UPDATE PROMET...);
Na unos nove uplate (INSERT INTO UPLATE), Uplata.Iznos dodaje se u polje Promet.Potraznja (UPDATE PROMET...).
Posle bilo koje od ove dve vrste promena OBRACUNAVA SE SALDO, takodje sadrzan u tabeli Potraznja.

U tabeli Promet, sadrzaji kolona potraznja i dugovanje se
MENJAJU,
A NE DODAJE SE NOVI RED ZA SVAKU PROMENU, TJ. NE RADI
INSERT NEGO UPDATE ------- OKO OVOGA SE JOS UVEK DVOUMIM.

Jedino sto se u ''UPDATE-varijanti'' gubi
je pregled SALDA PO DATUMIMA. Ako nesto previdjam, opomenite me.


Pored ovoga, u tabelu Promet, dodaje se vrednost u kolonu datum (takodje iz tabele Fakture ili Uplate-zavisi koja se akcija izvrsila)

@Zidar:
Pri izboru baze jedini uslov je da je besplatna. Mozda je pametnije prosto uraditi u FireBird-u ili MySql-u? Cisto Trigera i StoredProcedura radi.

* U gore pomenutoj temi Broker je predvideo vezivanje tabele PROMET za tabelu FAKTURE,
ja sam je vezao za tabelu KORISNIK jer mi je bitaj UKUPAN Saldo, iz tabel Promet. (Jel ovo greska?)

Pozdrav.



[Ovu poruku je menjao diplIng dana 22.11.2006. u 00:30 GMT+1]
Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Uloga Trigera u Accessu22.11.2006. u 15:02 - pre 211 meseci
Ovo sam i ocekivao
Citat:
Naime, na unos nove fakture (INSERT INTO FAKTURE), Faktura.Iznos dodaje se u polje Promet.Dugovanje (UPDATE PROMET...);
Na unos nove uplate (INSERT INTO UPLATE), Uplata.Iznos dodaje se u polje Promet.Potraznja (UPDATE PROMET...).
Posle bilo koje od ove dve vrste promena OBRACUNAVA SE SALDO, takodje sadrzan u tabeli Potraznja.

U tabeli Promet, sadrzaji kolona potraznja i dugovanje se
MENJAJU,
A NE DODAJE SE NOVI RED ZA SVAKU PROMENU, TJ. NE RADI
INSERT NEGO UPDATE ------- OKO OVOGA SE JOS UVEK DVOUMIM.


Ako malo bolje analiziras problem, mozes da zakljucis da ti tabela PROMET i ne treba kao tabela. Sve sto ima su toj tabeli mozes da dobijes kverijima iz tabela koje sadrze stvarne podatke a to su Fakture i Uplate. Saldo je druga rec za Stanje, a o tome smo pisali mnogo puta, vidi top teme koje se bave magacinima i kaficima i maloprodajama. Ni jedna od tih tema ne nudi gotovu aplikaciju, ali zato ima principe. U tvom slucaju, seti se da je
Saldo = (Ukupno Dugovanje) - (Ukupne Uplate)
Ukupno dugovanje se dobija direktno sabiranjem SVIH faktura, a ukupne uplate se dobijaju sumiranjem SVIH uplata, naravno po kupcu. Kad to sastavis u jedna kveri, dobijes neto sto lici na tvoju tabelu Promet.

Nekada se u starim sistemima Clipepr, DBase radilo ovako kako ti opisujes - ljudi su jednostavno napravili po tabelu za svaki papirni dokument i popunjavali tabele onako kako bi rucno popunjavali doumente. To je cesto u praksi stvaralo probleme, pa su jednog dana neki pametni ljudi seli i izmislili relacione baze, koje pomazu da se mnogi problemi ne rese, nego jednostavno nestanu. E sad, problem je sto relacione baze ne preslikavaju fizicke dokumente 100% u tabele, pa se ponekad programeri zbune. I opet, sto bolji programer, veca steta i zabuna na kraju, jer, progarmer ko programer, resi problem sa vise programiranja. Naravno da trigeri to mogu da rade, ali opet, namena trigera nije da to rade sto ti zelis u ovom slucaju.

Moja preporuka je da pogledas dizajn baze i uocis sva polja u svim tabelama koja su rezultat nekog proracuna. Ako ima takvih polja, izbaci ih i vidi kako mozes da ih izracunas kad ti pritreba ta informacija. Jedno od prvih pravila relacionih baza jeste 'izracunata polja se ne dozvoljavaju'. Tacno je da se to pravilo ponekad moze prekrsiti, ali ne trebe pravilo krsiti po pravilu. Pogotovu ako proracun za polje ukljucuje druge tabele.

Ako odlucis da svesno prekrsis pravila relacionih baza, onda ti tesko mozemo pomoci. Na forumu VB su verovatno bolji programeri nego ovde. Ovde razmisljamo relaciono, i kad se od toga odstupi mnogo onda to izlazi iz naseg domena.





 
Odgovor na temu

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
212.200.223.*



Profil

icon Re: Uloga Trigera u Accessu22.11.2006. u 18:59 - pre 211 meseci
Jedan od bitnijih zahteva je PREGLED DUZNIKA.
Dakle, ZA SVAKOG Korisnika treba izracunati Saldo.

Ako ne postoji tabela koja cuva Saldo, a koji se
obracunava pri svakoj promeni, nece li biti mnogo mucnije
izvrsavanje upita (ako nista drugo-vremenski)?

Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Uloga Trigera u Accessu22.11.2006. u 21:21 - pre 211 meseci
Nece biti uopste mucno izracunavati saldo za svakog korisnika kad ti zatreba. Bice mnogo mucnije kad se negde desi neka greskica u upisu, pa se ni ne otkrije i u polje Saldo se upise pogresna vrednost. Pa onda mislis da ti je saldo tacan ,a ono nije. I onda se u nekom reportu ne sloze zbirovi, nesto fali. Ko ce onda naci gresku?

Ja sam ti rekao kako se radi i zasto, a ti radi kako hoces, ne tvrdim da ne moze tako.
 
Odgovor na temu

Milos Milosevic
Beograd

Član broj: 98063
Poruke: 140
*.adsl.sezampro.yu.



Profil

icon Re: Uloga Trigera u Accessu23.11.2006. u 13:48 - pre 211 meseci
OK, jedun sitnicu nisam razjasnio.
Nije primarni problem izracunati saldo pojedinacno za tog-i-tog korisnika, vec - treba naci i razvrstati duznike,
dakle, recimo, OnClick_NadjiDuznike->uradi proracun po svim korisnicima, a ocekuje se njih vise stotina.

Ali, u redu, promenicu. Nemam iskustva pa su me zanimali razlozi za i protiv.
Naravno, cenim savete, iako ne izgleda tako :)

Necemo se valjda svadjati oko jedne tabele :)

Uzdravlje i hvala.









[Ovu poruku je menjao diplIng dana 24.11.2006. u 14:23 GMT+1]
Vreme je tica koja te kiti šarenim perjem no koja će doći
i da počupa svoje Ako budeš suviše vezao dušu svoju za perje
vreme će ti sa perjem i dušu očupati Ah kako će tada biti
nagota tvoja

Sv Vl. Nikolaj Velimirović
 
Odgovor na temu

[es] :: Access :: Uloga Trigera u Accessu

[ Pregleda: 3775 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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