Star
Строку, которая представляет набор всех значений поля в базе данных, можно определить с помощью оператора star. Она влияет на последующие операторы LOAD и SELECT.
Синтаксис:
Star is[ string ]
Аргументы:
Аргумент | Описание |
---|---|
string |
Произвольный текст. Обратите внимание, что при наличии в строке пробелов она должна быть заключена в кавычки. Если значение не указано, то по умолчанию используется star is;; то есть символ звездочки отсутствует, если он не будет указан явным образом. Это действительно до тех пор, пока не будет создан новый оператор star. |
Оператор Star is не рекомендуется использовать в той части скрипта, где содержатся данные (в Section Application), если используется доступ к секции. При этом символ звезды для защищенных полей в части Section Access скрипта полностью поддерживается. В этом случае использовать явный оператор Star is не требуется, поскольку он всегда является неявным при доступе к секции.
Ограничения
- Использовать символ звезды с ключевыми полями (т. е. полями, которые связывают таблицы) нельзя.
- Символ звезды нельзя использовать ни с какими полями, которые затрагивает оператор Unqualify, поскольку это может отрицательно влиять на поля, связывающие таблицы.
- Символ звезды нельзя использовать с таблицами, которые не являются логическими, например таблицами загрузки информации и таблицами загрузки сопоставлений.
- Когда символ звезды используется в каком-либо сокращающем поле (поле, которое связывается с данными) при доступе к секции, этот символ представляет значения, указанные в данном поле раздела доступа к секции. Он не представляет другие значения, которые могут существовать в данных, но не указаны при доступе к секции.
- Символ звезды нельзя использовать с полями, которые затрагивает любая форма сокращения количества данных вне области Доступ к секции.
Пример
Следующий пример представляет собой извлечение из скрипта загрузки данных, описывающее доступ к секции.
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
];
Применяются следующие условия:
- Star соответствует символу *.
Пользователь ADMIN видит все поля. Ничего не опускается.
- Пользователь USER1 не видит поле SALES.
- Пользователь USER2 не видит поле WAREHOUSE .
- Пользователь USER3 не видит поле EMPLOYEES.
- Пользователь USER4 дважды добавлен в программу; для двух полей SALES и WAREHOUSE для данного пользователя должно быть применено поле OMIT.
- К USER5 добавлена звездочка (*), то есть все поля, перечисленные в OMIT, недоступны: пользователь USER5 не видит поля SALES, WAREHOUSE и EMPLOYEES , но видит поле ORDERS.