Поделиться через


Свойство 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