![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка записей в ADO [D6, Access]
AleKo © (2004-05-12 04:00:00)Добрый день Господа!
Подскажите как произвести блокировку нескольких записей в многопользовательском приложении так что бы при считывании записей клиентом они блокировались и другой пользователь не имел права их редактировать а только просматривать.
Блокировки предусмотренные в ADO касаются только редактируемых записей.
Работаю с таблицами Access.
sniknik (2004-05-12 10:36:00) [1]>> лучше timestamp, иначе при зависе клиента навеки заблокируешь
> Это какойто инструмент или просто время блокировки.
timestamp(ib?) в access = now(), можно и time() но переходы дат придется учитывать, сложнее, а размер записи не изменится. что дата что время в access имеют тип datetime.
Polevi (2004-05-12 10:30:00) [2]время
AleKo (2004-05-12 09:50:00) [3]>лучше timestamp, иначе при зависе клиента навеки заблокируешь
Это какойто инструмент или просто время блокировки.
Polevi (2004-05-12 09:44:00) [4]флажок ставь
лучше timestamp, иначе при зависе клиента навеки заблокируешь
при чтении проверяй сколько времени прошло от начала блокировки, предполагая что оная не может длиться больше определеннго интервала
если разница больше интервала - можно занимать
AleKo (2004-05-12 09:34:00) [5]А есть возможность указать блокировку в операторе SELECT.
Например в FoxPro есть.
AleKo (2004-05-12 09:32:00) [6]На уровне записи при редактировании есть , а мне нужно заблокировать набор записей от изменений другим пользователем.
Polevi (2004-05-12 09:30:00) [7]в 2000 вроде есть блокировка на уровне записи
AleKo (2004-05-12 09:20:00) [8]Как я понял в Access блокируется страница и практически вместо одной записи блокируются соседнии.
Может тогда попробовать создать логическое поле в котором указывать считана запись для просмотра/редактирования или нет.
sniknik (2004-05-12 09:03:00) [9]а нечего, реально управлять блокировкой в accecc тем более позписьно ты не сможеш.
попробовать можно так (без гарантий что сработает) выставить locktype = ltPessimistic и зделать изменения в блокируемых записях, все естественно закрыть одной транзакцией. пока не откроеш другой редактировать не сможет, вот только заблокируется вся таблица скорее всего, вернее страница в которой данные.
AleKo (2004-05-12 08:52:00) [10]Посоветуйте что ни будь.
AleKo (2004-05-12 08:14:00) [11]?