Conn.Execute

Hotus 2011-02-26 02:42:56
Conn.Execute 能设置超时时间吗?
有时候执行到这里的时候,长时间没反应,导致不能执行下面的步骤了,该如何解决
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbcontrols 2011-02-26
  • 打赏
  • 举报
回复
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.Close

End Sub

Public Function GetState(intState As Integer) As String

Select Case intState
Case adStateClosed
GetState = "adStateClosed"
Case adStateOpen
GetState = "adStateOpen"
End Select

End Function
dbcontrols 2011-02-26
  • 打赏
  • 举报
回复
ConnectionTimeout 属性


指示在终止尝试和产生错误前建立连接期间所等待的时间。

设置和返回值

设置或返回指示等待连接打开的时间的长整型值(单位为秒)。默认值为 15。

说明

如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,请使用 Connection 对象的 ConnectionTimeout 属性。如果打开连接前所经过的时间超过 ConnectionTimeout 属性上设置的时间,将产生错误,并且 ADO 将取消该尝试。如果将该属性设置为零,ADO 将无限等待直到连接打开。请确认正在对其编写代码的提供者会支持 ConnectionTimeout 功能。

连接关闭时 ConnectionTimeout 属性为读/写,而打开时其属性为只读。
Hotus 2011-02-26
  • 打赏
  • 举报
回复
谢谢,我试试
  • 打赏
  • 举报
回复
'数据库连接处理
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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
借人家的代码……我用这个,似乎没有楼主所提出的现象。虽然连接假的地址也要一定时间,但是不会导致没有相应。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧