Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Синхронизация Access


Автор: IRQ 21.5.2007, 21:11
Пишу в институт программу. Что-то типа документооборота. Выбрал Delphi+MS Access+ADO. Всё ничего но есть проблемы связанные с одновременной работой. Хотел бы узнать как её организовать в Access и реально-ли это вообще? Может стоит поменять базу на SQL Server например? Задача состоит в том чтобы товарная база велась правильно. То етсь простейший пример-2 заказа на продажу. 2 менеджера. Каждый выбирает по 100 единиц товара в то время как на складе есть всего 150. Очевидно будет заказано 200 единиц из 150 возможных. Решить эту проблему мне не удалось.  Access просто не успевает обновить что-ли. Не знаю даже. Я поставил перепроверку в начале добавление нового заказа. Но эта перепроверка выдаёт старые результаты если заказы выполнять почти одновременно. Из-за этого появляется косяк в базе. Работа преподлагается по сети. Просто обычным расшариванием папки с базой по NetBIOS. При работе везде использую TADOQuery с LockType = Optimistic. Пробовал Pessimistic, ReadOnly но не помогает. Есть-ли выход из этой ситуации? А то времени мало уже. Не хочется попадать в неприятности. Искал на форуме похожие темы. Не нашёл. нашёл только то, что автор решил проблему сам а как не написано smile Очень нужна ваша помощь.

Автор: Akina 21.5.2007, 21:57
Следует использовать блокировку изменяемой записи или даже изменяемой таблицы.

Автор: IRQ 21.5.2007, 22:18
А как это сделать? Я почитал. нашёл вот про LockType. Но не помогло.

Автор: Akina 21.5.2007, 23:58
Цитата(IRQ @  21.5.2007,  22:11 Найти цитируемый пост)
При работе везде использую TADOQuery с LockType = Optimistic. Пробовал Pessimistic, ReadOnly но не помогает. 

Цитата(IRQ @  21.5.2007,  23:18 Найти цитируемый пост)
нашёл вот про LockType. Но не помогло

Еще бы! у тебя же Client-Side Cursor - следовательно, только LockBatchOptimistic, без вариантов и, что самое противное, без сообщения об ошибке.

Автор: IRQ 22.5.2007, 00:08
То есть единственный выход из ситуации это использовать LockBatchOptimistic? И при конфликте ошибки не будет а просто запрс будет проигнорирован. Я правильно понял? Или поменять CursorLocation? Как это влияет на работу?

Автор: Akina 22.5.2007, 11:06
Нет, АБСОЛЮТНО неверно.

Озаботьтесь все-таки чтением справки по вопросу. Без понимания сути решения не найти имхо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)