Форум: "Базы";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
ВнизТранзакции в ADO Найти похожие ветки
← →
DimaL (2007-10-23 03:35) [0]Есть программа, работающая с БД Access. В БД хранятся документы (примерно как в 1С "Один ко многим"). При начале редактирования документа Открывается транзакция
ADOConnection.BeginTrans
и закрывается при закрытии документа. Проблема в следующем: Пока открыта транзакция доступ ко всем оспользуемым в транзакции таблицам полностью заблокирован. Как убрать блокировки.
← →
ЮЮ © (2007-10-23 04:36) [1]Отказаться от
> При начале редактирования документа Открывается транзакция
> ADOConnection.BeginTrans
Use the LockType ltBatchOptimistic to open a dataset in batch update mode.
Call UpdateBatch to write any pending updates to disk for a dataset that is in batch update mode to the associated database.
← →
Sergey13 © (2007-10-23 08:46) [2]> [0] DimaL (23.10.07 03:35)
> Как убрать блокировки.
Тебе надо разобраться с транзакциями - что это такое и с чем это едят. Ты же пытаешься вылечить закономерные последствия неправильного их применения.
← →
Сусл © (2007-10-23 11:12) [3]
> Как убрать блокировки.
наверное можно это в Access (в MS-SQL, например, запросто with no lock). Но вот последствия будут не самыми радостными. Ибо будешь читать грязные данные.
т.о. поддерживаю [1] полностью.
← →
DimaL (2007-10-24 03:28) [4]Возможно я выбрал не удачный подход. Но каким образом можно решить такую задачу работы с документом?
← →
Сусл © (2007-10-24 11:19) [5]
> Возможно я выбрал не удачный подход. Но каким образом можно
> решить такую задачу работы с документом
мы ее решаем так:
1. есть спец. механизмы блолкировок. нет те, которые предоставляет mssql-server, а свой механизм. интерфейс к нему типа ObjectMark и ObjectUnmart. параметром передается идентификатор объекта.
2. клиент берет объект на редактирование, предварительно выставляя макр (по нашему блокировку) на объект. никто другой более взять на редактирование не может.
3. при сохранении:
а. begin tran.
b. update (запись измененных данных объекта)
c. commit
d. OjbectUnmark.
← →
Val © (2007-10-24 15:07) [6]>..есть спец. механизмы блолкировок. нет те, которые предоставляет mssql-
>server, а свой механизм..
это попытка приделать костыль эмуляции блокировки уровня записи на сервере-блокировочнике?
← →
Val © (2007-10-24 15:13) [7]>DimaL
"Неправильность" подхода в данном случае, в основном, в том, что вы начинаете "длинную" транзакцию. Стоит обернуть в транзакцию только непосредственную передачу изменений на сервер.
← →
Сусл © (2007-10-25 12:55) [8]
> [6] Val © (24.10.07 15:07)
> >..есть спец. механизмы блолкировок. нет те, которые предоставляет
> mssql-
> >server, а свой механизм..
> это попытка приделать костыль эмуляции блокировки уровня
> записи на сервере-блокировочнике?
э... даже отвечать не хочется, ибо "костыль" и "приделасть" не располагают на нужный лад.
> [7] Val © (24.10.07 15:13)
> >DimaL
> "Неправильность" подхода в данном случае, в основном, в
> том, что вы начинаете "длинную" транзакцию. Стоит обернуть
> в транзакцию только непосредственную передачу изменений
> на сервер.
о том и речь - транзакция только при сохранении.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c