# 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:

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.<br><br>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.