TopPicLogo TopPicText

Установка режима монопольного доступа к базе данных

Автор: Дмитрий Сонных sonni-dim@mail.ru

      С помощью кода DAO можно заблокировать доступ ко всей базе целиком. Это необходимо в тех случаях, когда требуется изменить структуру базы данных, произвести архивацию или просто запретить к ней доступ в течении некоторого времени.
   Для ограничения доступа ко всей базе данных с помощью DAO следует использовать метод OpenDatabase. (по материалам Дж. П. Мак-Манус "Обработка баз данных на VB6")

' -----------------------------------------------------------
' Поскольку область действия блокировки определяется областью
' видимости соответствующей переменной, по помещаем в модуль
' описание переменной
Public dbProtect As Database
' strPathDB - переменная, описывающая путь к подключенной базе данных
' Может быть узнана несколькими способами - через DAO, ADO или задана
' жестко (В этом примере не приводится)
Public strPathDB As String

' Помещаем на форме кнопку. Называем её cmdExclusive
' На событие Click вешаем обработку

Private Sub cmdExclusive_Click()
' При первом нажатии кнопки устанавливается режим
' монопольного доступа к базе, указанной в strPathDB
' при повтрном - снимается.
' Переменная strPathDB должна быть уже определена
Dim strPath As String
On Error GoTo Err_cmdExclusive_Click

' Проверяем инициализацию объекта dbProtect
If dbProtect Is Nothing Then
' Устанавливаем режим монопольного доступа
    Set dbProtect = OpenDatabase(strPath, True)
' можете установить какой-либо признак включения
' монопольного доступа. Я лично меняю надпись на кнопке
Else
' Снимаем режим монопольного доступа
    dbProtect.Close
    Set dbProtect = Nothing
' убирается признак монопольного доступа
End If

Exit_cmdExclusive_Click:
    Exit Sub

Err_cmdExclusive_Click:
' Попытка сделать монопольной уже открытую БД
' Err=3356
    MsgBox Err.Description
    Resume Exit_cmdExclusive_Click

End Sub

Назад ToTop
L.E. 28.09.2012
Рейтинг@Mail.ru