Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
Уважаемые! Есть необходимость заблокировать записи в таблице в момент считывания, чтобы другие могли ее только просмотреть, но не менять. С БД работаю через АДО. Подозреваю, что когда я открываю рекордсет с установленной песс. блокировкой, то когда я встаю (Move...) на определенную запись, то она блокируется и другой пользователь при попытке встать в другом таком же открытом рекордсете на эту же запись получит эррор. Внимание вопросы: Правильно ли я понимаю песс. блокировку? А можно ли пессиместически заблокировать сразу несколько записей в рекордсете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2002, 15:38 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
Сначала дай знать, лаптем какой фирмы ты "встаешь на запись". А также сообщи, какой у тебя курсор - серверный или клиентский. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2002, 18:43 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
2 Garya Разве лапоть формы имеет значение, если говорим об ADO? Песс. блокировка может быть выполнена только на серверной стороне и это логично. 2 Lohmatun Правильно, да не совсем. Блокировка установится после начала редактирования и до окончания. Для оптимистической - блокировка устанавливается только в момент физического сохранения отредактированных данных. Если прочитанные данные уже были изменены другим пользователем, произойдёт ошибка. Пессимистическая этого сделать не даст. Для понимания можно прочесть в SQL BOL "Concurrency Architecture" и в Knowledge Base Q252317 с примером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 08:24 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
2 KonstN 1. Что означает "после начала редактирования" - после перемещения по рекордсету на некую запись методами MoveFirst/Next/Prev...? - именно это мне непонятно с "окончанием редактирования ясно" - это когда update сделал, а вот с началом... 2. А кто отслеживает (ADO?) - были ли изменены данные другим пользователем? Пояснения: мне надо, чтобы некий объект, представленный записью таблицы, пользователь мог бы "открыть на чтение", "открыть на чтение и запись", но если пользователь открыл объект "на чтение и запись", то другой уже не мог бы его открыть - только "на чтение" На мой взгляд это немного отличается от подхода в дельфях и визалбасике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 11:08 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
2 Lohmatun 1. Нет, не после Move, а после Edit и до Update. Для оптимистической и после Edit рекорд не будет блокирована, а будет только на протяжении выполнения метода Update. 2. ADO. Это совсем не сложно, если смотреть как ADO работает внутри Я не знаю подход в делфях, но в визалбасике именно такой подход - ноги растут из ODBC. В принципе пессимистическая блокировка именно то, что ты хочешь - только при постановке на запись надо сказать Edit, а потом либо Update, либо CancelUpdate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 13:21 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
Привожу список методов объекта Recordset из MSDN: Methods AddNew Method Cancel Method CancelBatch Method CancelUpdate Method Clone Method Close Method CompareBookmarks Method Delete Method (ADO Recordset) Find Method GetRows Method GetString Method Move Method MoveFirst, MoveLast, MoveNext, and MovePrevious Methods NextRecordset Method Open Method (ADO Recordset) Requery Method Resync Method Save Method Seek Method Supports Method Update Method UpdateBatch Method ну тупой я! ну где тут Edit? или может я не тот объект смотрю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 13:48 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
Вери-вери сорри. Привычка - вторая натура Для ADO это не справедливо. Просто как только ты начинаешь редактировать запись при adLockPessimistic, она становится заблокированной пока не скажешь Update или CancelUpdate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 15:41 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
Edit наследуется от TDataSet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2002, 21:17 |
|
||
|
Про пессимистическую блокировку
|
|||
|---|---|---|---|
|
#18+
"Просто как только ты начинаешь редактировать запись при adLockPessimistic, она становится заблокированной пока не скажешь Update или CancelUpdate." - так вот я и интересуюсь, вызов какого метода означает, что я "начинаешь редактировать запись"? Это происходит в момент, когда соотв. запись в рекордсете становится текущей или еще как-то? Например, когда я присваиваю значение полю типа rst.Fields("MyField").Value="Что-то"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2002, 12:55 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3497&tid=1823626]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 353ms |

| 0 / 0 |
