Свойство QueryDef.ODBCTimeout (DAO)
Область применения: Access 2013, Office 2013
Указывает время ожидания в секундах до возникновения ошибки времени ожидания при выполнении queryDef в базе данных ODBC.
Синтаксис
expression . ODBCTimeout
выражение: переменная, представляющая объект QueryDef.
Примечания
Если свойство ODBCTimeout имеет значение -1, время ожидания по умолчанию соответствует текущему параметру свойства QueryTimeout объекта Connection или Database , содержащего значение QueryDef. Если для свойства ODBCTimeout задано значение 0, ошибка времени ожидания не возникает.
При использовании базы данных ODBC, например Microsoft SQL Server, задержки могут возникать из-за сетевого трафика или интенсивного использования сервера ODBC. Вместо того, чтобы ждать бесконечно, можно указать, как долго ждать, прежде чем возвращать ошибку.
Задание свойства ODBCTimeout объекта QueryDef переопределяет значение, заданное свойством QueryTimeout объекта Connection или Database , содержащего QueryDef, но только для этого объекта 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