Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
АРМ Корректор :  ИРБИС Irbis
 
Вопрос по команде UNIQUE()
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 01, October, 2008 12:03

Документацию прочитал, вроде все ясно.
Но вот среди каких значений команда UNIQUE() ищет уникальность? В документации не внятно описано.

ЗЫ. Много орф.ошибок. Илья, перечитай мануал :).



Редактировано 1 раз. Последний раз 01.10.2008 12:15 пользователем Панев Максим.

Re: Вопрос по команде UNIQUE()
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 02, October, 2008 10:39

Система работает в каждый момент времени над таким блоком данных:

Текущее множество записей (Имя БД+(необязательно)поисковый запрос)
Текущий mfn
Текущий номер поля
Название текущего поля
Номер повторения текущего поля
Текущее подполе (если пусто, то не используется, с 2008.1 если * то используется значение поля за вычетом подполей)
Название текущего подполя
Предыдущее значение подполя (если подполе не определено, то является значением поля)
Текущее значение подполя (если подполе не определено, то является значением поля)

Команда UNIQUE отслеживает уникальность в рамках такого набора:
[БД],[текущий номер поля],[текущее подполе]
в качестве проверки на уникальность используется текущее значение.

Т.е.,к примеру, если ее вызов происходит внутри конструкции
CHECKISIS("dbname","irbissearch")
{
 CHECKFIELD(f,"desc")
 {
  UNIQUE();
 }
}

то в этом случае проверяется уникальность поля f целиком в рамках множества записей, определяемых в конструкции CHECKISIS

Если внутри конструкции
CHECKISIS("dbname","irbissearch")
{
 CHECKFIELD(f,"fdesc")
 {
  CHECKSUBFIELD(s,"sdesc")
  {
   UNIQUE();
  }
 }
}

то проверяется на уникальность значение подполя s поля f в рамках множества записей, определяемых в конструкции CHECKISIS.

Если поле повторяющееся (REPEATABLE()) то уникальность проверяется так же для каждого повторения поля (т.е. все повторения этого поля в рамках набора записей должны быть уникальны)

Мануал перечитаю :) заодно к 2008.1 туда добавлю информацию о новшествах.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.