Описание
Задает или возвращает в секундах интервал ожидания при выполнении объекта QueryDef (запроса) к базе данных ODBC.
Значение
Задаваемое или возвращаемое значение является выражением типа Integer, представляющим время в секундах, после которого возникает ошибка превышения интервала ожидания
Когда для свойства ODBCTimeout задается значение -1, интервал ожидания по умолчанию получает текущее значение свойства QueryTimeout объекта Connection или Database, в котором содержится объект QueryDef. Если задать для свойства ODBCTimeout значение 0, ошибка при превышении времени ожидания не возникает.
Замечания
В процессе работы с базой данных ODBC, такой как Microsoft SQL Server, могут возникнуть задержки из-за сильной нагрузки на сеть или интенсивного использования сервера ODBC. Вместо бесконечного ожидания можно задать интервал ожидания, по истечении которого будет генерироваться ошибка.
Значение свойства ODBCTimeout объекта QueryDef имеет приоритет над значением, заданным в свойстве QueryTimeout объекта Connection или Database, в котором содержится объект QueryDef (но только для этого объекта QueryDef).
В рабочей области ODBCDirect после явного задания значения свойства ODBCTimeout допускается его сброс к значению по умолчанию (т.е. -1), но сделать это можно только один раз за время жизни объекта 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("Борей.mdb") ' Изменяет стандартное значение свойства QueryTimeout ' в базе данных "Борей". Debug.Print "Стандартное значение QueryTimeout в " & dbsCurrent.QueryTimeout dbsCurrent.QueryTimeout = 30 Debug.Print "Новое значение QueryTimeout в " & dbsCurrent.QueryTimeout ' Создает новый объект QueryDef. Set qdfStores = dbsCurrent.CreateQueryDef("Товары", "SELECT * FROM Товары") qdfStores.Connect = "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers" ' Изменяет полученное по умолчанию значение свойства ' ODBCTimeout нового объекта QueryDef. Debug.Print "Стандартное значение ODBCTimeout для QueryDef: " & qdfStores.ODBCTimeout qdfStores.ODBCTimeout = 0 Debug.Print "Новое значение ODBCTimeout для: " & qdfStores.ODBCTimeout ' Выполняет запрос и отображает результаты. Set rstStores = qdfStores.OpenRecordset() Debug.Print "Содержимое набора записей:" With rstStores Do While Not .EOF Debug.Print , .Fields(0), .Fields(1) .MoveNext Loop .Close End With ' Удаляет новый объект QueryDef, созданный для демонстрации. dbsCurrent.QueryDefs.Delete qdfStores.Name dbsCurrent.Close End Sub