Star
Ciąg danych używany na potrzeby reprezentacji zestawu wszystkich wartości pola w bazie danych można ustawić przy użyciu instrukcji star. Wpływa on na następne instrukcje LOAD i SELECT.
Składnia:
Star is[ string ]
Argumenty:
Argument | Opis |
---|---|
string |
Dowolny tekst. Należy pamiętać, że jeśli ciąg znaków zawiera spacje, wówczas musi zostać ujęty w cudzysłowy. Jeśli żadna opcja nie zostanie wybrana, przyjmuje się wartość star is;, to znaczy, że symbol gwiazdki nie jest dostępny, chyba że zostało to wyraźnie określone. Ta definicja obowiązuje do momentu podania nowej instrukcji star. |
Nie zaleca się stosowania instrukcji Star is w części skryptu zawierającej dane (w sekcji zainicjowanej instrukcją Section Application), jeśli jest używany dostęp do sekcji. Znak gwiazdki jest jednak w pełni obsługiwany w odniesieniu do pól chronionych w części Section Access (dostęp do sekcji) skryptu. W tym przypadku nie ma konieczności używania jawnej instrukcji Star is, ponieważ w dostępie do sekcji jest ona zawsze domniemana.
Ograniczenia
- Nie można używać znaku gwiazdki z polami kluczy, czyli polami, które tworzą powiązania tabel.
- Nie można używać znaku gwiazdki z żadnymi polami objętymi instrukcją Unqualify, ponieważ może to mieć wpływ na pola, które tworzą powiązania tabel.
- Nie można używać znaku gwiazdki z tabelami innymi niż logiczne, na przykład tabelami typu „info-load” lub „mapping-load”.
- Kiedy znak gwiazdki jest używany w polu kompresującym (polu tworzącym powiązania z danymi) w dostępie do sekcji, reprezentuje on wartości wymienione w tym polu w dostępie do sekcji. Nie reprezentuje natomiast innych wartości, które mogą istnieć w danych, ale nie są wymienione w dostępie do sekcji.
- Nie można używać znaku gwiazdki z polami objętymi jakąkolwiek formą kompresji danych poza obszarem Section Access (dostęp do sekcji).
Przykład
Poniższy przykład zawiera wyodrębnienie skryptu ładowania danych z dostępem do sekcji.
Star is *;
Section Access;
LOAD * INLINE [
ACCESS, USERID, OMIT
ADMIN, ADMIN,
USER, USER1, SALES
USER, USER2, WAREHOUSE
USER, USER3, EMPLOYEES
USER, USER4, SALES
USER, USER4, WAREHOUSE
USER, USER5, *
];
Section Application;
LOAD * INLINE [
SALES, WAREHOUSE, EMPLOYEES, ORDERS
1, 2, 3, 4
];
Obowiązują następujące ustalenia:
- Znak Star to *.
Użytkownik ADMIN widzi wszystkie pola. Nic nie jest pominięte.
- Użytkownik USER1 nie widzi pola SALES.
- Użytkownik USER2 nie widzi pola WAREHOUSE .
- Użytkownik USER3 nie widzi pola EMPLOYEES.
- Użytkownik USER4 jest dodawany dwukrotnie do rozwiązania, aby OMINĄĆ dla pola dotyczące tego użytkownika: SALES i WAREHOUSE.
- USER5 ma dodany znak „*”, co oznacza, że wszystkie pola w polu OMIT są niedostępne, czyli użytkownik USER5 nie widzi pól SALES, WAREHOUSE i EMPLOYEES , ale widzi pole ORDERS.