网络重新连接后SQL-Server连接失败

问题描述:

我正在使用DAO访问SQL Server的应用程序的更新。我知道,但现在让我们考虑一下DAO的需求。网络重新连接后SQL-Server连接失败

应用程序一直在系统托盘中运行,并定期执行SQL服务器操作。由于它一直在运行,并且应用程序的用户将在笔记本电脑上并在建筑物之间转换,我已将其设计为在活动状态和非活动状态之间悄悄转换。当数据库连接成功时恢复运行。

我有一个最后一个问题,我释放此更新之前:当连接被删除,然后重新建立,SQL操作失败。只有在我的连接字符串中指定了主机名时,才会发生这种情况。如果我使用IP,一切都很好(但我需要能够使用主机名)。

这里是行为:

1)一切工作。良好的网络连接,数据库操作都很好。

2)连接丢失。任务栏图标上出现小'x',没有其他东西。一切都好。

3)重新连接。

在第3步,当我运行第一个查询时,出现'ODBC - 调用失败'错误。有趣的是,数据库首先打开时没有错误。

如果我跳过第1步,并在连接断开时启动应用程序,则在步骤3(主机名或不是)中,一切工作正常。

我希望这是DAO引擎在第一次连接后缓存DNS条目的问题,尽管目标IP不会改变,所以我不确定这一点。我试图刷新窗口的DNS缓存(从cmd提示符)不起作用。甚至当我使用本地主机名与本地SQL服务器进行开发时,也会发生相同的行为。 127.0.0.1没有问题。

我也尝试CoUninitialize()活动时间之间的DAO接口,但我有麻烦让这个工作。如果有人认为这会有所帮助,我会加倍努力。

此行为是在Windows XP或任何东西一样7.你有

谢谢!

编辑:我应该提到 - 我关闭尝试之间的数据库连接,然后用

m_pDb = m_pDaoEngine->OpenDatabase() 

最后我咬咬牙,将应用程序ADO重新打开它。现在一切正常,数据库操作启动速度更快。