[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hermetyzacja w PROGRESS-ie.
Witam !
Chociaż pytanie nie jest adresowane do mnie, to pozwolę się
wtrącić.
1) Zakładam, że przez słowo "transakcja" rozumie Pan operację
na tablicy bazy danych, ponieważ zarówno w Progressie jak i informatyce
słowo to oznacza zupenie coś innego (ciąg operacji, który wykonuje się do
końca albo w razie jego przerwania wycofuje - to tak z
grubsza).
2) Nie bardzo wiem skąd biorą
"setkimi lub tysiącami
niepotrzebnych mi już instancji". Jedna instancja takiej
procedury jest uruchamiana dla jednej i tylko jednej tablicy, ponieważ
jest skompilowana dla konkretnej tablicy, w tym przypadku dla a_tbl.
Jesli tych tablic jest tysiące, i dla każdej z nich zostanie uruchomiona
zostanie jedna instacja odpowiedniej procedury persistent to rzeczywiście
będzie ich sporo.
3) Pozwolę sobie na uwagę natury ogólnej.
Progress, a własciwie język 4GL, jak to zostało w dyskusji z ostatnich
dni uzasadnione, a wiadome jest od dawna, mimo że używa często słów
"obiekt" językiem obiektowym nie jest. Sama baza też nie jest
"obiektową bazą danych" tylko bazą relacyjną (z drobnymi
wyjątkami). Stosowanie więc obiektowego podejścia "na siłę"
przynosi nieoczekiwane skutki. Jeśli chce Pan obiektowo działać, to
najlepiej wybrać do tego odpowiedni język programowania a nie robić coś
wbrew naturze posiadanego narzędzia. Nie bardzo wiem co w przypadku
padanej procedury chce Pan osiągnąć poprzez hermetyzację - implementować
elementarne operacje na bazie i to dla każdej tablicy oddzielnie ? Jak na
tych obiektach zbudować zapytanie (query), jak uruchomić wykaz (browse),
jak wykonać kilka operacji na bazie w jednej transakcji (w tym sensie jak
podałem) ?
Może trzeba zrobić sobie obiekty wyższego poziomu, to bedzie ich znacznie
mniej. Np: obiekt pod nazwą: obsługa faktury z metodami: wystawienie
nowej faktury, skasowanie, przyjęcie faktury korekcyjnej, rozliczenie
zapłaty za fakturę przez klienta. Przy czym nie byłyby to operacje
elementarne na tablicy z fakturami tylko pełne rozliczanie księgowe
faktur, drukowanie, wprowadzanie itp.
4) Jeśli źle zrozumiałem Pana intencje dotyczące takiego sposobu
programowania, to proszę mnie wyprowadzić z błędu.
Pozdrawiam,
Henryk
Jusza
mailto:henju@pg.gda.pl
--------------------------------------------------------------
Ośrodek Informatyczny Politechniki Gdańskiej
Pracownia Rozwoju Oprogramowania
tel (058) 347-28-01
fax (058) 347-24-63