[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reposition.
W jaki sposób wykonać reposition na
browserze dynamicznym?
Wykonując jedną z metod REPOSITION-XXX() odnoszącą się do zapytania
związanego z wykazem (browserem). Wskaźnik (handler) do tego zapytania
znajduje się na atrybucie QUERY wykazu.
Czy w Create Browse można ustawić
INDEXED-REPOSITION?
INDEXED-REPOSITION nie jest opcją dotyczącą wykazu (browsera) tylko
zapytania (query) w związku z tym dla wykazu ustawić jej nie można. Można
to zrobić dla zapytania podczas jego otwierania instrukcją OPEN QUERY
(dla zapytania statycznego) lub metodą QUERY-PREPARE() (dla zapytania
dynamicznego) umieszczając we wzorcu zapytania podawanym jako parametr
tej metody tekst o składni zbliżonej do składni instrukcji OPEN QUERY
zawierający opcję INDEXED-REPOSITION.
Warto tutaj zwrócić uwagę na to, że wykaz może być traktowany
dynamicznie, jeśli był zdefiniowany jako statyczny, najlepiej bez żadnych
kolumn. Mając wskaźnik do takiego wykazu (z atrybutu HANDLE) można przed
lub w trakcie jego działania dodawać/kasować kolumny odpowiednimi
metodami wykazu a także wiązać z nim różne zapytania zarówno statyczne
jak i dynamiczne ustawiając na atrybut QUERY wskaźniki (handlery) do tych
zapytań.
Od wersji 9.1 wykaz i zapytanie (niezależnie od ich dynamiczności) są
dwoma oddzielnymi bytami, które są związane poprzez atrybut wykazu
QUERY.
Jak wykonać wyszukiwanie na buforze
tablicy zbudowanej dynamicznie
inaczej niż kombinacją pętli i BUFFER-COMPARE() ?
Jeśli chodzi tutaj o tymczasową tablicę dynamiczną, to za pomocą
zapytania dynamicznego na tej tablicy. W metodzie QUERY-OPEN tego
zapytania, której parametrem jest łańcuch o składni zbliżonej do składni
instrukcji OPEN-QUERY, można używać nazwy bufora tej tablicy dynamicznej
wraz z nazwami pól, które dla tej tablicy zostały dynamicznie
zdefiniowane. Nazwy tych pól są znane, bo były w programie definiowane
dla tej tablicy. Skąd wziąć nazwę bufora ? Jeśli to jest własny bufor
dynamiczny, to jego nazwa jest znana, bo została określona w czasie jego
tworzenia instrukcją CREATE BUFFER z FOR TABLE odnoszącym się do
wskaźnika tablicy dynamicznej, jeśli zaś jest to bufor domyślny, to
wskaźnik do niego (handler) znajduje sie na atrybucie
DEFAULT-BUFFER-HANDLE utworzonej tablicy a mając wskaźnik do bufora jego
nazwę można znaleźć na atrybucie bufora NAME. Oczywiście ten łańcuch dla
metody QUERY-PREPARE trzeba zbudować w trakcie działania
programu.
-----------
Pozwolę sobie nieskromnie na auto-reklamę i polecem moje wystąpienie na
konferencji, którego tekst jest umieszczony w ostatnim magazynie PROGRESS
4PL, a które omawiało te właśnie zagadnienia. Niestety, zarówno moje
wystąpienie słowne jak i artykuł w tym magazynie jest ze względu na czas
bądź to objętość tekstu bez kilku przykładów, które lepiej obrazowałyby
omawiane zagadnienia.
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