Страница 1 из 1
Уникальный, не первичный ключ
Добавлено: 27 Ноябрь 2014, 12:25
artgkx
Clarion 6.3 В словаре два ключа IDkey по полю ID и NameKey по полю Name. IdKey первичный, уникальный. NameKey уникальный.
При вводе в Form Id присваивается AutoIncrement. Предполагал что Name будет проверяться и выдаст ошибку DuplikateKey при дублирующемся значении. Но этого не происходит и добавляются повторяющиеся значения.
Control Value Validation Conditions .. стоит. В чем я неправ?
Re: Уникальный, не первичный ключ
Добавлено: 27 Ноябрь 2014, 12:36
kreator
А база какая? По-моему, на уровне шаблонов нет проверки, только на уровне БД. Если у Вас TPS, то filemanager отработает нормально, проверено 20 годами работы

.
Re: Уникальный, не первичный ключ
Добавлено: 27 Ноябрь 2014, 12:51
Игорь Столяров
kreator писал(а):При вводе в Form Id присваивается AutoIncrement.
Если в словаре для ключа задан параметр AutoIncriment, то увеличение значение последнего поля ключа делается ДО открытия FORM.
Но делается это действительно, либо кодом шаблона, либо на стороне сервера для SQL БД.
Нужно смотреть описание (структуру) таблицы БД и более подробная информация о коде (какие шаблоны используются и как добавляется запись в список).
Re: Уникальный, не первичный ключ
Добавлено: 27 Ноябрь 2014, 13:02
kreator
Игорь Столяров писал(а):Если в словаре для ключа задан параметр AutoIncriment, то увеличение значение последнего поля ключа делается ДО открытия FORM.
Для Name здесь нет autoincrement (я так понял), только уникальность.
Re: Уникальный, не первичный ключ
Добавлено: 27 Ноябрь 2014, 13:09
artgkx
База TPS. Шаблоны ABC. Стандартная Browse/Form. Раньше вроде-бы проверял, работало как надо. Просто вернулся к старому проекту, переработал для заказчика, начали вводить справочники и вот засада! Оператор (девушка) даже не смотрит что вводит.
Re: Уникальный, не первичный ключ
Добавлено: 27 Ноябрь 2014, 13:23
kreator
Специально проверил у себя. Всё работает как надо. А что, если в словаре стоит уникальность ключа, а в файле TPS нет. При загрузке проверяется это дело? К сожалению, больше работаю с SQL, поэтому не могу однозначно сказать. Но то, что при записи проверяется на уровне класса FileManager, это точно. На уровне формы ничего нет, притом, что можно и без формы ввести (например, EIP).