QueryDef.ODBCTimeout 属性 (DAO)

适用于:Access 2013、Office 2013

指示在开放式数据库连接 (ODBC) 数据库上执行 QueryDef 时,发生超时错误之前等待的秒数。

语法

表达式 。ODBCTimeout

表达式 一个表示 QueryDef 对象的变量。

说明

如果 ODBCTimeout 属性设置为 -1,则超时默认为包含 QueryDefConnectionDatabase 对象的 QueryTimeout 属性的当前设置。 如果 ODBCTimeout 属性设置为 0,则不发生超时错误。

如果使用的是 ODBC 数据库(如 Microsoft SQL Server),可能会由于网络阻塞或大量使用 ODBC 服务器而导致延迟。 不需要无限期地等待,您可以指定返回错误前的等待时间。

设置 QueryDef 对象的 ODBCTimeout 属性将重写由包含 QueryDefConnectionDatabase 对象的 QueryTimeout 属性指定的值,但这一点只适用于该 QueryDef 对象。

示例

以下示例使用 ODBCTimeoutQueryTimeout 属性,演示 Database 对象的 QueryTimeout 设置如何设置从 Database 对象创建的任何 QueryDef 对象的默认 ODBCTimeout 设置。

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