VBA, MS Access MS Access в примерах

Изменение свойства UseTransaction сразу всех запросов приложения

Вместо пояснений,  цитата из справочной системы:
     Задав для свойства Использовать транзакцию (UseTransaction) значение Нет, можно значительно повысить быстродействие при определенных обстоятельствах. В этом случае пользователь никогда не столкнется с проблемами, связанными со слишком большим количеством запросов на блокировку записей. Кроме того, ядро базы данных Jet не сохраняет результаты запроса во временной базе данных, что тоже повышает быстродействие.
Если существует большое количество записей, которые должны быть записаны во временную базу данных, то выполнение запроса на изменение как отдельной транзакции может снизить быстродействие. Кроме того, при выполнении запроса на удаление или обновление в общей базе данных, возникает большое количество запросов на блокировку записей. Это может снизить быстродействие в некоторых сетевых операционных системах, например, в NetWare выполнение запроса будет прервано, если количество запросов на блокировку записей превысит 10000.
    Если завершение транзакции невозможно, появляется сообщение об ошибке и пользователь может сохранить или нет внесенные изменения.

Private Sub ChangeQueriesPrp()
'es 17.01.2004
'Изменение свойств сразу всех запросов приложения
'--------------------------------------------------------------------
Dim dbs As Database, qdf As QueryDef
On Error GoTo ChangeQueriesPrpErr
    Set dbs = CurrentDb
    For Each qdf In dbs.QueryDefs
        'если запрос не на выборку то меняем его свойства
        If qdf.Type <> dbQSelect Then
            Debug.Print qdf.Name
            qdf.Properties("UseTransaction") = False
        End If
    Next qdf
    Exit Sub
ChangeQueriesPrpErr:
    MsgBox "Процедура [ChangeQueriesPrp] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number, vbCritical
End Sub
Назад ToTop
L.E. 31.08.2017
Рейтинг@Mail.ru