Шаг 174 - Свойство ODBCTimeout

Описание
Задает или возвращает в секундах интервал ожидания при выполнении объекта 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

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