[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gdzie mozna znalezc opis gramatyki???



Tomasz Fidecki wrote:
> 
> Witam.
> 
> Poszukuje PELNEGO opisu gramatyki 4GL Progressa. Chce uniknac
> niespodzianek typu niemoznosc uzycia CAN-FIND w skladni OPEN QUERY. Z tego
> co widze zawodnicy z PSC dosc swobodnie traktuja "expression" w zaleznosci
> od kontekstu.
> 
> W zwiazku z powyzszym mam nastepujace zadanie:
> 
> +------+                  lezy w +-----------+
> | kosz |------------------------<| truskawka |
> +------+ zawiera                 +-----------+
> 
> ot taka sobie standardowa relacja 1:wiele
> 
> Chcialbym otworzyc browser z danymi o koszach, ale warunek ma
> dotyczyc truskawki. Innymi slowy np. przegladarka koszy, w ktorych
> leza TYLKO czerwone truskawki. (zalozenie: w koszu moga lezec
> czerwone i zielone truskawki)
> 
> Pierwsze podejscie:
>     OPEN QUERY q1 FOR EACH kosz WHERE NOT CAN-FIND(truskawka OF kosz
>                     WHERE truskawka.kolor <> "czerwona")
>     Pudlo - Progress nie pozwala uzywac CAN-FIND w skladni OPEN QUERY. W
>     zwyklym grupowaniu FOR EACH taki manewr przechodzi.
> Drugie podejscie:
>     No wlasnie... za prawidlowe odpowiedzi wysylam zagraniczna
>     kolorowa pocztowke.
>     Za prawidlowa odpowiedz uznajemy taka, ktora nie uzywa browsera w
>     wersji 6.
> 
> Pozdrawiam serdecznie
> 
> Tomasz Fidecki                          phone (voice)  +48 22 6404728
> Financial Services LTD                  mailto:tomek@fsl.com.pl
> Marynarska 21
> 02-674 Warsaw Poland

Moze ja czegos nie rozumiem, ale problem wydaje sie prosty

def query q for kosz,truskawka.

open query q for each kosz no-lock, 
		 each truskawka of kosz no-lock where kolor="czerwony".

A w browserze mozna wyswietlic tylko dane o koszach.

Albo druga metoda. Jezeli uparles sie, zeby otwierac query tylko dla
kosza, to mozna zrobic tak:


Open Query kosz For Each kosz.

i wstawic trigger

On Find Of kosz run proc.


procedure proc:

 find first truskawka of kosz where kolor="czerwony".
 if not available truskawka then return error.

end.

Trzeba pamietac, zeby przy wyjsciu z procedury wstawic

on find of kosz revert.