【问题标题】:VBA ADO connection timeout in different version of libraries不同版本库中的 VBA ADO 连接超时
【发布时间】:2014-07-31 06:48:37
【问题描述】:

我正在尝试使用 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 版本之间有什么区别 - 我在哪里可以找到它?

【问题讨论】:

    标签: sql-server vba timeout ado


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      相关资源
      最近更新 更多