ADODB-Abfrage-timeout
Ich versuche, öffnen Sie eine Abfrage, die ist timing. Ich habe versucht Einstellung der timeout-Eigenschaft, aber es scheint nicht zu wollen, es zu akzeptieren.
Die Abfrage dauert 34 Sekunden zum ausführen von mit MS-SQL-Server-Management-Fenster (SQL Server 2005), so dass ich weiß, dass ich brauchen, um erhöhen Sie den timeout.
Aktuelle code:
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
Ich habe auch versucht, die Einstellung der timeout der Verbindung selbst CurrentProject.Connection.CommandTimeout = 120
, aber wenn ich der Abfrage den Wert direkt nach diesem Befehl, es bleibt bei 30
Verbindung Eigenschaften:
Provider=Microsoft.- Zugang.OLEDB.10.0;Persist Security Info=False;Data Source=MyServer;Integrated Security=SSPI;Initial Catalog=MyDatabase;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
du wirst sehen, dass ich den Befehl timeout auf die ADODB-Befehl auf 0 (Unendlich-timeout)
Nicht sicher, warum die 30-Sekunden-Zeitlimit bleibt, scheint sehr seltsam. Was passiert, wenn Sie anrufen", rs.öffnen Sie cmd' statt 'set rs = cmd.führen Sie' übergeben Sie Ihr command-Objekt als Quelle. Einfach nur neugierig, wenn Sie laufen in das gleiche Problem gibt es?
Wie ist Ihre Verbindung einrichten? Wenn ich ADO-verbindungen, die ich immer verwenden Sie die explizite verbindungen, die ich erstellen also ich bin nicht gewohnt, die Verwendung von CurrentProject.- Verbindung. Ist das ein ADP?
ja, es ist eine ADP - (und ich kann das nicht ändern)
InformationsquelleAutor SeanC | 2013-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob du schon über das problem, aber ich hatte das gleiche Problem.
Ich mache es mit Recordset.Öffnen SQL_String, Verbindung.
Und zu vor, dass ich einfach den timeout-Eigenschaft, nicht auf das Recordset oder Befehl, sondern auf das Connection-Objekt:
InformationsquelleAutor Manuel
vom http://codingjourney.blogspot.com/2008/11/ado-connection-timeout-command-or.html
InformationsquelleAutor BreakBadSP
Für OLEDB tun, die Sie nicht brauchen, um geben Sie die Zeitüberschreitung für die Verbindung :-
InformationsquelleAutor Richard Spencer