Шаг 59 - Свойство QueryTimeout

Описание
Задает или возвращает в секундах интервал ожидания, после которого возникает ошибка превышения времени ожидания при выполнении запроса к источнику данных ODBC.

Значение
Задаваемое или возвращаемое значение является выражением типа Integer, которое представляет интервал ожидания в секундах. Значением по умолчанию является 60.

Замечания
В процессе работы с базой данных ODBC, такой как Microsoft SQL Server, могут возникнуть задержки из-за сильной нагрузки на сеть или интенсивного использования сервера ODBC. Вместо бесконечного ожидания можно указать конечный интервал ожидания.
При использовании свойства QueryTimeout с объектом Connection или Database задает глобальное значение времени ожидания для всех запросов конкретной базы данных. Пользователь имеет возможность указать для конкретного запроса другое значение с помощью свойства ODBCTimeout соответствующего объекта QueryDef.
Для того чтобы указать в рабочей области Microsoft Jet значение, отличное от значения по умолчанию, следует создать новую запись «ODBC» на пути реестра \HKEY_LOCAL_MACHINE\SOFTWARE\Jet\3.5\, создать параметр QueryTimeout и задать для него нужное значение.

Пример
Следующая программа использует свойства 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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.03.2002