06.09.2004, 14:46 | #1 |
Участник
|
Одновременный доступ к заказу 2х пользователей
Как запртеить или обойти такую ситуацию:
Пользователь 1 создает заказ, вводит номенклатуру, в это время пользователь2 заходит в этот же заказ и меняет какие-то атрибуты или добавляет еще номенклатуру. При попытке выйти 1-го пользователя из заказа возникает ошибка: "Значение, введенное в поле 'Оценка суммы' таблицы 'Заказы' ('10926,48') нельзя сохранить, поскольку оно изменено другим пользователем . Используйте функцию "Восстановить", чтобы подставить новое значение" |
|
06.09.2004, 15:01 | #2 |
Участник
|
Например настроив права доступа на записи таблицы SalesTable таким образом, чтобы пользователь мог видеть только свои заказы.
|
|
06.09.2004, 15:30 | #3 |
Участник
|
Контроль доступа -> Доступ на уровне записей ?
Там можно устанавливать только для групп, мне же нужно для каждого пользователя одной группы. И потом я не хотел бы ограничивать доступ. |
|
06.09.2004, 15:43 | #4 |
Участник
|
Да.
Одна группа - один пользователь. Если так не подходит, то с помощью доработки формы SalesTable. Если текущий пользователь является создателем текущей строки SalesTable - разрешаем редактирование - иначе - только просмотр. Строки заказа SalesLine - аналогично. |
|
06.09.2004, 15:50 | #5 |
Участник
|
Цитата:
Изначально опубликовано YellowSubmarine
Если так не подходит, то с помощью доработки формы SalesTable. Если текущий пользователь является создателем текущей строки SalesTable - разрешаем редактирование - иначе - только просмотр. Строки заказа SalesLine - аналогично. А с чем связанно, что такую ситуацию не всегда удается смоделировать, часто одновременное изменение никаких коллизий не вызывает? |
|
06.09.2004, 16:03 | #6 |
Участник
|
Наверное один пользователь успевает записать изменения (нажатием Ctrl+S или переходом на другую строку) до того, как второй начинает редактирование.
Буквально в пятницу в своей форме (в USR слое) боролся с такой-же ошибкой. Причем я был единственным пользователем в этой базе. Решение оказалось простым - расчетное поле при вычислении не округлялось и записывалось в таблицу как есть (real). После добавления функции округления (перед записью в таблицу) до 4-х знаков после запятой все исправилось ) |
|
|
|