Compartir a través de


Propiedad QueryDef.ODBCTimeout (DAO)

Se aplica a: Access 2013, Office 2013

Indica el número de segundos que hay que esperar antes de que se produzca un error de tiempo de espera cuando se ejecuta QueryDef en una base de datos ODBC.

Sintaxis

expresión . ODBCTimeout

expression Variable que representa un objeto QueryDef.

Comentarios

Cuando la propiedad ODBCTimeout está establecida en -1, el tiempo de espera establece el valor actual de la propiedad QueryTimeout del objeto Connection o Database que contiene QueryDef. Cuando la propiedad ODBCTimeout está establecida en 0, no se produce un error de tiempo de espera.

Cuando esté utilizando una base de datos ODBC como, por ejemplo Microsoft SQL Server, pueden producirse demoras debido al tráfico en la red o a una sobrecarga en el servidor ODBC. En vez de esperar indefinidamente, puede especificar el tiempo de espera antes de que se devuelva un error.

Al establecer la propiedad ODBCTimeout de un objeto QueryDef se anula el valor especificado por la propiedad QueryTimeout del objeto Connection o Database que contiene QueryDef, pero únicamente para ese objeto QueryDef.

Ejemplo

En este ejemplo se utilizan las propiedades ODBCTimeout y QueryTimeout para mostrar cómo el valor QueryTimeout en un objeto Database establece el valor ODBCTimeout predeterminado en cualquier objeto QueryDef creado desde un objeto 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