Свойство Database.QueryTimeout (DAO)
Область применения: Access 2013, Office 2013
Задает или возвращает значение, указывающее время ожидания в секундах до возникновения ошибки времени ожидания при выполнении запроса в источнике данных ODBC.
Синтаксис
expression . QueryTimeout
выражение: переменная, представляющая объект Database.
Замечания
Значение по умолчанию 60.
При использовании базы данных ODBC, например Microsoft SQL Server, возможны задержки из-за сетевого трафика или интенсивного использования сервера ODBC. Вместо того чтобы ждать бесконечно, можно указать время ожидания.
При использовании QueryTimeout с объектом Connection или Database он задает глобальное значение для всех запросов, связанных с базой данных. Это значение можно переопределить для определенного запроса, задав свойство ODBCTimeout конкретного объекта QueryDef .
Пример
В этом примере используются свойства ODBCTimeout и QueryTimeout , чтобы показать, как параметр QueryTimeout для объекта Database задает параметр ODBCTimeout по умолчанию для всех объектов QueryDef, созданных из объекта Database .
Sub ODBCTimeoutX()
Dim dbsCurrent As Database
Dim qdfStores As QueryDef
Dim rstStores As Recordset
Set dbsCurrent = OpenDatabase("Northwind.mdb")
' Change the default QueryTimeout of the Northwind
' database.
Debug.Print "Default QueryTimeout of Database: " & _
dbsCurrent.QueryTimeout
dbsCurrent.QueryTimeout = 30
Debug.Print "New QueryTimeout of Database: " & _
dbsCurrent.QueryTimeout
' Create a new QueryDef object.
Set qdfStores = dbsCurrent.CreateQueryDef("Stores", _
"SELECT * FROM stores")
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the SQL Server.
qdfStores.Connect = _
"ODBC;DATABASE=pubs;DSN=Publishers"
' Change the ODBCTimeout setting of the new QueryDef
' object from its default setting.
Debug.Print "Default ODBCTimeout of QueryDef: " & _
qdfStores.ODBCTimeout
qdfStores.ODBCTimeout = 0
Debug.Print "New ODBCTimeout of QueryDef: " & _
qdfStores.ODBCTimeout
' Execute the query and display the results.
Set rstStores = qdfStores.OpenRecordset()
Debug.Print "Contents of recordset:"
With rstStores
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
.Close
End With
' Delete new QueryDef because this is a demonstration.
dbsCurrent.QueryDefs.Delete qdfStores.Name
dbsCurrent.Close
End Sub