VB6 ADODB.Connection执行()重试直到成功

时间:2015-12-23 23:57:18

标签: vb6 adodb recordset

我正在尝试修复一个小实用程序,它似乎在一些空闲时间后丢失了与数据库的连接。我已经将超时设置为0,但这似乎不起作用。

我不想简单地崩溃并显示几条错误消息,而是想尝试重新建立连接并执行查询直到成功(我意识到这可能是对资源的不良使用)但即便如此,那就是我的意思我试图在这里完成。或者,如果可能的话,显示一个消息框,说明连接丢失,一旦建立连接就会关闭。

任何建议都将不胜感激。

Public connMain As ADODB.Connection
Public rsMain As ADODB.Recordset 

......

Function Picture_Exists() As Boolean
On Error Resume Next 
sqlstr = "select * .... "
Set rsMain = connMain.Execute(sqlstr)

2 个答案:

答案 0 :(得分:1)

由于不使用,您的连接可能会在数据库端丢弃。在没有使用时保持连接不是一种好的做法。连接在资源方面是昂贵的,因此任何这样的实践都不会很好地扩展。 Dbadmins不可能将未使用的连接打开很长时间。

您的潜在解决方案是尝试连接,如果您无法忽略该错误。我们不会说"永远不会"经常在这个行业,但你永远不应该使用" On Error Resume Next"还没有评估Err.Number以查看它是否等于0(如果是,则没有错误)。这称为"内联错误处理。"

无论如何,我不会使用这种方法。我会评估Connection对象的State Property,如果它已关闭(cn.State = adoStateClosed),那么我会重新打开它。

答案 1 :(得分:0)

您可以尝试以下操作:

display:none