Набор записей: блокировка (ODBC)
Этот раздел относится к классам ODBC библиотеки MFC.
В этом разделе рассматриваются следующие вопросы.
При использовании набора записей для обновления записи в источнике данных приложение может заблокировать запись, чтобы другие пользователи не могли одновременно обновлять запись. Состояние записи, обновляемой двумя пользователями одновременно, не определено, если система не может гарантировать, что два пользователя не могут одновременно обновлять запись.
Примечание.
Этот раздел относится к объектам, производным от CRecordset
, в которых пакетное получение строк не реализовано. Если вы реализовали массовое получение строк, некоторые сведения не применяются. Например, нельзя вызывать функции-члены Edit
и Update
функции-члены. Дополнительные сведения о выборке массовых строк см. в разделе Recordseting Records: Получение записей в пакетной службе (ODBC).
Режимы блокировки записей
Классы базы данных предоставляют два режима блокировки записей:
Оптимистическая блокировка (по умолчанию)
Пессимистичная блокировка
Обновление записи выполняется в трех шагах:
Чтобы начать операцию, вызовите функцию "Изменить член".
Вы изменяете соответствующие поля текущей записи.
Завершите операцию ( и обычно фиксируете обновление), вызвав функцию элемента обновления .
Оптимистическая блокировка блокирует запись в источнике данных только во время Update
вызова. Если в многопользовательской среде используется оптимистическая блокировка, приложение должно обработать Update
условие сбоя. Pessimistic locking блокирует запись сразу после вызова Edit
и не освобождает ее до вызова Update
(сбои указываются через CDBException
механизм, а не по значению FALSE, возвращаемого Update
). Pessimistic lock имеет потенциальную производительность для других пользователей, так как одновременный доступ к той же записи может ждать завершения процесса приложения Update
.
Блокировка записей в наборе записей
Если вы хотите изменить режим блокировки объекта набора записей по умолчанию, перед вызовом Edit
необходимо изменить режим.
Изменение текущего режима блокировки для набора записей
- Вызовите функцию-член SetLockingMode, указав либо
CRecordset::pessimistic
.CRecordset::optimistic
Новый режим блокировки остается в силе, пока не измените его еще раз или набор записей закрыт.
Примечание.
Относительно немногие драйверы ODBC в настоящее время поддерживают пессимистическую блокировку.
См. также
Набор записей (ODBC)
Набор записей. Объединение (ODBC)
Набор записей. Добавление, обновление и удаление записей (ODBC)