|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
Сетевая БД22.08.2020, 13:57. Показов 1736. Ответов 26
Метки нет (Все метки)
Добрый день всем! При работе с БД в сетевом режиме через ПО, как можно ограничить удаление строки с которой в данный момент работают. К примеру она была запрошена и открыта в форме. Пока вводят данные ее могут удалить или же так же отредактировать. Вообще как правильно нормализовать работу сетевой БД именно по защите строк.
0
|
|
| 22.08.2020, 13:57 | |
|
Ответы с готовыми решениями:
26
Сетевая база Access. Сетевая структура БД Сетевая БД с досовым интерфейсом |
|
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
|
||
| 25.08.2020, 11:24 | ||
|
Если сервер вы заводить не собираетесь, то придётся в базе таблицу отдельную заводить, куда ID записей скидывать, которые сейчас на редактировании. И смотреть в эту таблицу.
0
|
||
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 25.08.2020, 11:27 [ТС] | |
|
Usaga, Я согласен это логично и прочие, тогда почему не как в случае с адодб?
0
|
|
|
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
|
|
| 27.08.2020, 07:04 | |
|
0
|
|
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 27.08.2020, 14:01 [ТС] | |
|
Usaga, интерес в более других лучших вариантах с минимальным набором костылей
0
|
|
|
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
|
|
| 28.08.2020, 07:11 | |
|
UBUNTU, ну, я в общем описал: промежуточное звено между клиентами и СУБД - сервер приложения. Если клиент хочет открыть какую-то форму для редактирования записи, которую по вашей бизнес-логике другие клиенты одновременно открывать не должны, то за это должен отвечать сервер приложения. Он должен запомнить ID записи, которая была запрошена на редактирование и отказывать другим клиентам в выдаче этой записи. Как он запомнит этот ID - уже от вашей фантазии зависит: хотите в памяти держите, хотите - в базу сохраняйте.
А вот тот вариант, что вы с ADODB показали на мой взгляд вообще противозаконен. Там такое ощущение, что создаётся какая-то транзакция сразу на всё подключение, с эксклюзивной блокировкой. Это было бы не так сильно страшно (хотя всё равно фу), если бы подключение жило не долго. А так, эта транзакция живёт всё время, пока юзер чего-то в UI там делает. А если он вообще уйдёт пить чай? Долгие транзакции для любой СУБД - преступление. Многие СУБД даже таймауты на это имеют и могут откатывать такие транзакции, если они долго висят. Поэтому, такие вещи если и нужно делать, то силами собственного кода. Ну и не факт, что вообще такое нужно реализовывать. Очень и очень часто достаточно просто сравнить версию записи в момент сохранения и всё. В SQL Server для этих целей даже тип колонки есть специальный - timestamp\rowversion. Если значение поля этой записи отличается от того, что было на момент открытия формы (и чтения записи), то пользователю просто можно сказать "Запись изменена другим пользователем. Перезагрузите и отредактируйте снова". И всё.
0
|
|
|
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
|
|
| 28.08.2020, 14:33 [ТС] | |
|
Usaga, могу ли я просто тогда в отдельном столбце держать к примеру lastusr типа кто последний редактировал и при открытии ее читать и сверять с логином авторизации, если не он тогда типа ваш вариант выдавать. Это не стрёмно?
0
|
|
|
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
|
|
| 29.08.2020, 10:02 | |
|
UBUNTU, LastModifiedUserId вполне распространённое явление. Но это больше для истории, кто последний тут был. А вам достаточно самого факта изменения записи. Плюс, что если один пользователь откроет два клиента и отредактирует одну и ту же запись. Я понимаю, что идиотизм, но ведь возможно. И вариант с "посмотреть на логин последнего редактора" тут не отработает, а простой timestamp - на ура.
0
|
|
| 29.08.2020, 10:02 | |
|
Сетевая программа сохранение данных Сетевая работа в Access 2000SP2 Сетевая модель отношений в таблице MySQL Сетевая БД access. Создать калькулятор калорий из двух таблиц Сетевая БД - при работе нескольких пользователей данные не обновляются Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|