Цитата:
Сообщение от
VasVovec
Натолкнулся на непонятный момент. У формы StaffingList выставлено AutoSplitKey = true
Если на поле вторичного ключа наложен фильтр (я пока не смог уловить однозначную закономерность,
но всегда проявляется если отфильтровано 1 или 2 записи и вставка ведется в позицию перед последней записью),
то при копировании записи возникает ошибка "запись с таким значением ключа уже существует"
Ктото может прокоментировать?
это особенность AutoSplitKey. Он работает только когда стоит сортировка по первичному ключу. Принцип работы прост:
При вставке новой записи между строк, автосплиткей сравнивает эти две строки (например в заказе продажи) - у первой "Line no." = 10000, у второй "Line No." = 20000. Разницу между значениями он делит на два и прибавляет к минимальной, в итоге = (20000-10000)/2+10000 = 15000. Происходит вставка строки, у которой "Line No." = 15000.
Теперь, допустим, вы отсортировали по вторичному ключу, и у вас последовательно пять строк "Line No." которых
10000
60000
30000
40000
20000
50000
При попытке вставить между 20000 и 40000 строкой произойдет ошибка, по причине того, что расчет AvtoSplitKey даст строку с номером 30000, а такая в базе уже есть!