2014-06-10 56 views
0

我試圖使用VBA(Excel 2007)和ADO連接對象連接SQL Server 2012上的視圖。除了一個視圖之外,一切都很完美,即使對於最簡單的查詢,運行時錯誤也會發生。要設置連接的最長時間,我使用命令YourConnection.ConnectionTimeout = 0Microsoft ActiveX Data Objects x.x Library(2.0,2.1,...,2.8,6.1,6.2)的不同版本是否有不同的最大超時時間,或者所有的最大超時時間是30次?另外 - 2.0,...,2.8版本的庫有什麼區別 - 我可以在哪裏找到它?不同版本的庫中的VBA ADO連接超時

回答

3

ConnectionTimeout僅適用於連接建立。如果您的查詢在執行期間超時,則應該使用帶有CommandTimeout的Command對象。當心,你必須將其設置每一個Command對象,因爲它不是從Connection對象繼承:

Dim cnn As New ADODB.Connection 
cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=xxx;Catalog=xxx;User ID=xxx;Password=xxx;" 
cnn.Open 

Dim cmd As New ADODB.Command 
Set cmd.ActiveConnection = cnn 
cmd.CommandTimeout = 120 
cmd.CommandText = "SELECT * FROM [Table]" 

Dim rs As New ADODB.RecordSet 
rs.Open cmd, , adOpenStatic, adLockOptimistic 

檢查MSDN獲取更多信息和MDAC/ADO history