[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