ADODB délai d'expiration de requête

Je suis en train d'ouvrir une requête, qui est le moment de sortir. J'ai essayé de définir le délai d'expiration de la propriété, mais il ne semble pas vouloir l'accepter.

La requête prend 34 secondes à s'exécuter à l'aide de MS-SQL Server Management de la fenêtre (SQL Server 2005), donc je sais que j'ai besoin d'augmenter le délai d'attente.

Code actuel:

Public Function retRecordSet(StrSQL)
Dim cmd ' as new ADODB.Command
Dim rs 'As New ADODB.Recordset

Set cmd = CreateObject("ADODB.Command")
Set rs = CreateObject("ADODB.Recordset")

cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = StrSQL
cmd.CommandTimeout = 0
Set rs = cmd.Execute

Set retRecordSet = rs
End Function

J'ai aussi essayé de définir le délai d'expiration de la connexion elle-même CurrentProject.Connection.CommandTimeout = 120, mais si j'ai une requête à la valeur juste après cette commande, il reste au 30

Propriétés de la connexion:

Provider=Microsoft.D'accès.OLEDB.10.0;Persist Security Info=False;Data Source=Monserveur;Integrated Security=SSPI;Initial Catalog=Mabase;Data Provider=SQLOLEDB.1

Data Source Object Threading Model = 1
Multiple Results = 3
Multiple Parameter Sets = False
SQL Support = 283
Catalog Location = 1
Catalog Term = database
Catalog Usage = 15
Rowset Conversions on Command = True
Extended Properties = 
Cache Authentication = True
Encrypt Password = 
Persist Encrypted = 
Persist Security Info = False
Asynchronous Processing = 0
Connect Timeout = 600
Protection Level = 
Prompt = 4
Mode = 
Location = 
Locale Identifier = 1033
Impersonation Level = 
Window Handle = 
Data Source = MyServer
User ID = 
Password = 
Integrated Security = SSPI
Mask Password = 
Initial Catalog = MyDatabase
Lock Owner = 
Bind Flags = 
General Timeout = 0
Data Provider = SQLOLEDB.1
Autocommit Isolation Levels = 4096
Unique Reshape Names = False
  • Jetez un oeil à ce blog: codingjourney.blogspot.com/2008/11/...
  • vous verrez que j'définir le délai d'expiration de commandes sur le ADODB de Commande à 0 (Infini de délai d'attente)
  • Je ne sais pas pourquoi les 30 secondes de délai d'attente reste, semble très étrange. Qu'advient-il si vous appelez le " rs.ouvrir cmd "au lieu de" set rs = cmd.exécuter' en passant votre commande de l'objet en tant que source. Juste curieux de savoir si vous rencontrez le même problème il y a?
  • Comment est la configuration de votre connexion? Lorsque j'utilise les connexions ADO j'ai toujours utiliser des connexions que je crée donc je ne suis pas habitué à utiliser CurrentProject.Connexion. Est-ce une ADP?
  • oui, c'est une ADP (et je ne peux pas changer ça)
  • juste par intérêt - ne CommandTimeout = 0 dire de ne pas imposer de temps?

InformationsquelleAutor SeanC | 2013-07-10