Conn.Execute 能设置超时时间吗?
有时候执行到这里的时候,长时间没反应,导致不能执行下面的步骤了,该如何解决

解决方案 »

  1.   

    '数据库连接处理
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function ConnectSybase(sr, db, us, pd, bs) As Boolean
        Set Consb = New ADODB.Connection
        Set Rsbdata = New ADODB.Recordset
        On Error GoTo ErrMsg
        '判断数据库是否已经打开 如果打开则先关闭
        If Consb.State = adStateOpen Then
            Consb.Close
        End If
        Dim strConnect As String
        Consb.ConnectionTimeout = 3
        If bs = 0 Then
        '-------------------------------
        '连接SQL数据库
        strConnect = "Provider=SQLOLEDB.1;Data Source=" & sr & ";Persist Security Info=True;User ID=" & us & ";Password=" & pd & ";Initial Catalog=" & db
        Consb.Open strConnect
        '-------------------------------
        '通过下句与ODBC数据源进行连接,不需用户选择数据源
        'strConnect = "Provider=MSDASQL.1;Persist Security Info=False;" & " Extended Properties='DSN=chs;SRVR=zb;DB=zbserver;UID=sa2;PWD=abacus'"
        '-------------------------------
        Else
        '连接sybase数据库
        strConnect = "Provider=MSDASQL.1;DRIVER={Sybase System 11};Persist Security Info=False;DSN=; SRVR=" & sr & ";DB=" & db & ";UID=" & us & ";PWD=" & pd
        Consb.Open strConnect
        '-------------------------------
        End If
        '注意:如果你不想建立DSN,可采取无DSN连接方法如下:
        '将上句改为 strConnect = "Provider=MSDASQL.1;DRIVER={Sybase System 11};Persist Security Info=False;DSN=; SRVR=服务器IP;DB=数据库;UID=用户名;PWD=密码"
        'Persist Security是否采用集成安全机制
        ConnectSybase = True
        Exit Function
    ErrMsg:
    '    MsgBox "连接数据库错误!请确认服务器是否开启.", 16
        ConnectSybase = False
    End Function借人家的代码……我用这个,似乎没有楼主所提出的现象。虽然连接假的地址也要一定时间,但是不会导致没有相应。
      

  2.   

    ConnectionTimeout 属性
          指示在终止尝试和产生错误前建立连接期间所等待的时间。设置和返回值设置或返回指示等待连接打开的时间的长整型值(单位为秒)。默认值为 15。说明如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,请使用 Connection 对象的 ConnectionTimeout 属性。如果打开连接前所经过的时间超过 ConnectionTimeout 属性上设置的时间,将产生错误,并且 ADO 将取消该尝试。如果将该属性设置为零,ADO 将无限等待直到连接打开。请确认正在对其编写代码的提供者会支持 ConnectionTimeout 功能。连接关闭时 ConnectionTimeout 属性为读/写,而打开时其属性为只读。
      

  3.   

    ConnectionString、ConnectionTimeout 和 State 属性范例
    该范例说明了使用 ConnectionString 属性打开 Connection 对象的不同方法。同时还使用 ConnectionTimeout 属性设置连接超时时间,并使用 State 属性检查连接的状态。该过程运行时需要 GetState 函数。
    Public Sub ConnectionStringX()   Dim cnn1 As ADODB.Connection
       Dim cnn2 As ADODB.Connection
       Dim cnn3 As ADODB.Connection
       Dim cnn4 As ADODB.Connection   ' 不使用数据源名 (DSN) 打开连接。
       Set cnn1 = New ADODB.Connection
       cnn1.ConnectionString = "driver={SQL Server};" & _
          "server=bigsmile;uid=sa;pwd=pwd;database=pubs"
       cnn1.ConnectionTimeout = 30
       cnn1.Open
       
       ' 使用 DSN 和 ODBC 标记打开连接。
       Set cnn2 = New ADODB.Connection
       cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
       cnn2.Open
       
       ' 使用 DSN 和 OLE DB 标记打开连接。
       Set cnn3 = New ADODB.Connection
       cnn3.ConnectionString = "Data Source=Pubs;User ID=sa;Password=pwd;"
       cnn3.Open
       
       ' 使用 DSN 和单个参数而非连接字符串打开连接。
       Set cnn4 = New ADODB.Connection
       cnn4.Open "Pubs", "sa", "pwd"
     
       ' 显示连接的状态。
       MsgBox "cnn1 state: " & GetState(cnn1.State) & vbCr & _
          "cnn2 state: " & GetState(cnn2.State) & vbCr & _
          "cnn3 state: " & GetState(cnn3.State) & vbCr & _
          "cnn4 state: " & GetState(cnn4.State)   cnn4.Close
       cnn3.Close
       cnn2.Close
       cnn1.CloseEnd SubPublic Function GetState(intState As Integer) As String   Select Case intState
          Case adStateClosed
             GetState = "adStateClosed"
          Case adStateOpen
             GetState = "adStateOpen"
       End SelectEnd Function