Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344

Сетевая БД

22.08.2020, 13:57. Показов 1736. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем! При работе с БД в сетевом режиме через ПО, как можно ограничить удаление строки с которой в данный момент работают. К примеру она была запрошена и открыта в форме. Пока вводят данные ее могут удалить или же так же отредактировать. Вообще как правильно нормализовать работу сетевой БД именно по защите строк.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2020, 13:57
Ответы с готовыми решениями:

Сетевая база
Доброго времени суток! Такой очень глупый вопрос. Я разбил базу и не знаю куда можно выложить файл с таблицами. Мой компьютер не подходит...

Access. Сетевая структура БД
Форумчанам привет! Необходим совет, как в MS Access сделать простую БД, имеющую сетевую структуру. В гугле ничего нужно не нашел. ...

Сетевая БД с досовым интерфейсом
Всем привет! Может быть, сможете что-то подсказать по моему вопросу. В офисе 6 машин используют базу данных с досовым интерфейсом, сам...

26
Эксперт .NET
 Аватар для Usaga
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
25.08.2020, 11:24
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от UBUNTU Посмотреть сообщение
Да легко: на примере
Речь о том, как правильно это сделать. Ваше приложение (сервер) само должно запомнить ID записи, которую один из клиентов пытается редактировать и не давать другим клиентам открыть форму редактирования той же самой записи.

Если сервер вы заводить не собираетесь, то придётся в базе таблицу отдельную заводить, куда ID записей скидывать, которые сейчас на редактировании. И смотреть в эту таблицу.
0
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
25.08.2020, 11:27  [ТС]
Usaga, Я согласен это логично и прочие, тогда почему не как в случае с адодб?
0
Эксперт .NET
 Аватар для Usaga
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
27.08.2020, 07:04
Цитата Сообщение от UBUNTU Посмотреть сообщение
тогда почему не как в случае с адодб?
Если вы можете использовать этот ADODB и он решает ваши проблемы - используйте.
0
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
27.08.2020, 14:01  [ТС]
Usaga, интерес в более других лучших вариантах с минимальным набором костылей
0
Эксперт .NET
 Аватар для Usaga
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
28.08.2020, 07:11
UBUNTU, ну, я в общем описал: промежуточное звено между клиентами и СУБД - сервер приложения. Если клиент хочет открыть какую-то форму для редактирования записи, которую по вашей бизнес-логике другие клиенты одновременно открывать не должны, то за это должен отвечать сервер приложения. Он должен запомнить ID записи, которая была запрошена на редактирование и отказывать другим клиентам в выдаче этой записи. Как он запомнит этот ID - уже от вашей фантазии зависит: хотите в памяти держите, хотите - в базу сохраняйте.

А вот тот вариант, что вы с ADODB показали на мой взгляд вообще противозаконен. Там такое ощущение, что создаётся какая-то транзакция сразу на всё подключение, с эксклюзивной блокировкой. Это было бы не так сильно страшно (хотя всё равно фу), если бы подключение жило не долго. А так, эта транзакция живёт всё время, пока юзер чего-то в UI там делает. А если он вообще уйдёт пить чай?

Долгие транзакции для любой СУБД - преступление. Многие СУБД даже таймауты на это имеют и могут откатывать такие транзакции, если они долго висят.

Поэтому, такие вещи если и нужно делать, то силами собственного кода.

Ну и не факт, что вообще такое нужно реализовывать. Очень и очень часто достаточно просто сравнить версию записи в момент сохранения и всё. В SQL Server для этих целей даже тип колонки есть специальный - timestamp\rowversion. Если значение поля этой записи отличается от того, что было на момент открытия формы (и чтения записи), то пользователю просто можно сказать "Запись изменена другим пользователем. Перезагрузите и отредактируйте снова". И всё.
0
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
28.08.2020, 14:33  [ТС]
Usaga, могу ли я просто тогда в отдельном столбце держать к примеру lastusr типа кто последний редактировал и при открытии ее читать и сверять с логином авторизации, если не он тогда типа ваш вариант выдавать. Это не стрёмно?
0
Эксперт .NET
 Аватар для Usaga
14738 / 9512 / 1364
Регистрация: 21.01.2016
Сообщений: 35,901
29.08.2020, 10:02
UBUNTU, LastModifiedUserId вполне распространённое явление. Но это больше для истории, кто последний тут был. А вам достаточно самого факта изменения записи. Плюс, что если один пользователь откроет два клиента и отредактирует одну и ту же запись. Я понимаю, что идиотизм, но ведь возможно. И вариант с "посмотреть на логин последнего редактора" тут не отработает, а простой timestamp - на ура.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2020, 10:02

Сетевая программа сохранение данных
Здравствуйте. Помогите найти ответ. Есть сетевая программа Access 2003. Присоединенные таблицы. На одном компьютере завели данные, на...

Сетевая работа в Access 2000SP2
Здравствуйте. Помогите советом, как мне наладить многопользовательский доступ к БД.

Сетевая модель отношений в таблице MySQL
Так уж вышло, что мне нужно создать базу данных, которая будет хранить информацию о состоянии и связях Контролируемых Пунктов(далее КП). ...

Сетевая БД access. Создать калькулятор калорий из двух таблиц
Ребят, помогите создать калькулятор калорий в accesse из двух таблиц 1(продукт, обработка, жиры, углеводы, белки, ккал), 2(рецепт,...

Сетевая БД - при работе нескольких пользователей данные не обновляются
Ребят, подскажите. Имеется сетевая папка в ней БД. Каждый пользователь открывает свою форму. Но есть проблема, дело в том, что при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 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 существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru