Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2007, 12:58   #11
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от XPAiN Посмотреть сообщение
1. Вернее перед каждым действием .refresh всех табилиц для обновления в них данных, т.к. они могли обновиться
Код:
Table1.close;
Table1.refresh;
Table1.open;
Вам нужно было обновление таблицы - так помогает?
фЁдОр вне форума Ответить с цитированием
Старый 25.12.2007, 13:16   #12
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию

2 состотавляющие: Блокировка и обновление таблиц. Таблицы у меня обновляются кодом который я писал. Я хочу узнать достаточно ли этих составляющих для организации многопользовательской БД.
delphi is my world
XPAiN вне форума Ответить с цитированием
Старый 25.12.2007, 13:30   #13
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

фЁдОр вот мне интересно как Вы собираетесь рефрешить неоткрытый набор данных?
Aristarh Dark вне форума Ответить с цитированием
Старый 25.12.2007, 14:11   #14
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от Aristarh Dark Посмотреть сообщение
фЁдОр вот мне интересно как Вы собираетесь рефрешить неоткрытый набор данных?
Aristarh Dark, я лишь предлагаю варианты. Я же не написал, что делай так, как я написал! Отвечая в этой теме, я сам сидел без делфи и пока ну не было еще необходимости делать у себя в БД обновление, но понимаю, что это необходимо знать и предлагаю как свои варианты. Я же еще спросил:
Цитата:
так помогает?
. Но для меня обновление БД через Locate то же еще в диковенку. Сейчас я с делфи и вижу, что действительно мой вариант не работает, но еще раз повторюсь-это было предложено лишь как вариант.
фЁдОр вне форума Ответить с цитированием
Старый 25.12.2007, 15:14   #15
KAMENYKA
Пользователь
 
Аватар для KAMENYKA
 
Регистрация: 06.12.2007
Сообщений: 87
По умолчанию

Извиняюсь что вмешиваюсь!!! Может я чтото не понимаю, Access сам блокирует запись до конца выполнения транзакции!!! Поэтому к одной записе может обратиться только один пользователь, а второй только после таго как выполниться транзакция. Единстевнное я немогу утверждать что будет если два пользователя обратятся к одной записе будет ли второй пользователь ждать пока первый изменит запись или ему выдадит ошибку это зависит от того как настроена СУБД!Это во первых!!!
А вовторых: СУБД Access подрозумивает под собой многопользовательский доступ к данным поэтому там уже большенство предусмотрино.
и у меня такой вопрос это как должно быть построенно производство чтоб был такой большой процент чтобы надо было продумывать оброботку одновременного доступа к записе? У меня просто 50 пользователей и ещё неразу невозникало ошибки одновременного доступа к записе.

Ну а если уж надо! Могу посоветывать обычный try except который будет выдовать сообщение что запись в данный момент обробатываеться другим пользователем.

Последний раз редактировалось Alex21; 25.12.2007 в 17:08.
KAMENYKA вне форума Ответить с цитированием
Старый 26.12.2007, 11:33   #16
XPAiN
Форумчанин
 
Аватар для XPAiN
 
Регистрация: 31.10.2007
Сообщений: 108
По умолчанию

KAMENYKA спасибо. Пользователей около 20 будет, но все таки такой механизм требуется. Т.к. обращение к "горячим" записям будет производится часто несколькими людьми
delphi is my world
XPAiN вне форума Ответить с цитированием
Старый 03.01.2008, 22:58   #17
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Счастье Многопользовательская БД

Поделюсь опытом (ADO будет к месту).

Вот у нас база данных, находящаяся на некотором ПК. Все пользователи имеют отдельные приложения (на то она и сетевая БД). Компоненты каждого приложения создают для себя виртуальные копии нужных таблиц, и работают с ними. Применение модифицированных виртуальных изменений к реальным таблицам БД не требует никакого вмешательства со стороны программиста. Модификация выполняется на уровне СУБД Access автоматически, направляя пользователей в очередь, если создалась ситуация одновременного модифицирования. Конфликта никакого быть не может.

Вопрос в том, увидят ли остальные пользователи новые изменения сразу же после модификации? ...нет. А что нужно делать, чтобы работать уже с измененными данными? ...перед каждым обращением к таблицам закрывать и открывать, но применять .RecNo – это текущая строка в таблице (виртуальной). Нужно прописать алгоритм, который через определенное время запоминает все позиции курсоров в открытых пользователем таблицах, закрывает и снова открывает их.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц