odbc sql server driver 通讯链路故障

Posted

技术标签:

【中文标题】odbc sql server driver 通讯链路故障【英文标题】:odbc sql server driver communication link failure 【发布时间】:2011-02-17 17:30:33 【问题描述】:

我有一个 Access 2003 前端和 SQL 2005 后端。 有时,用户会收到以下错误并且前端崩溃。 关于如何解决这个问题的任何指示?

[ODBC SQL Server Driver] Communication link failure

【问题讨论】:

你有没有通过say:social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/…中的步骤? 查看 DNS 配置。配置错误的工作站可能会导致类似这样的神秘问题。通常的问题是 Internet DNS 在本地 DNS 之前被查询。您希望本地 DNS 成为主要的(并且可能只有 DNS),并让您的本地 DNS 将查询传递给 Intenret,以获取所有非本地的内容。我已经在不止一个实例中看到此修复了此类错误。 同意大卫。在我工作的一个地方,我们的服务器花了很长时间才响应 DNS 查询,以至于我们的工作站将使用远离我们网络的辅助 DNS 服务器来尝试查找本地工作站。当然,它没有用。 我已将链接更改为使用 IP 地址,所以这不适合我。似乎有一个缓存连接,一旦它进入错误状态,它就会永久保留在那里。 【参考方案1】:

从我对该主题所做的谷歌搜索和阅读来看,在我看来,这可能只是 MS Access 中的一个错误,他们从未费心修复,即:没有解决方案。强>

我看到的和其他人似乎有的症状是 Access 与 SQL Server 的连接变得“坏”,一旦达到这种状态,除了重新启动 Access 之外,没有什么能解决它。虽然让人大吃一惊,但这完全有可能——如果与连接管理相关的代码(在 MS Access 本身中,或在 ODBC 提供程序中)不检查连接状态的有效性并始终假设它是好的,那么我们会看到我们正在看到的症状。

你会想,微软肯定会解决这个问题,但这不是第一次。

更新

我在使用 Microsoft Access Project (*.adp) 时看到了相同的行为,因此问题似乎出在 MS Access 本身(而不仅仅是 ODBC)。

【讨论】:

这与我在 Access 2010 中的经验一致,尤其是在打开表单并且计算机进入“休眠”状态时 - 我不断接到这个电话,唯一的解决方案似乎是重新打开 Access 数据库。老实说,这很烦人。【参考方案2】:

我已经看到这种死锁事务的行为。以下是可能发生这种情况的示例:

BeginTrans

'Insert/Update/Delete record in table Employees:
CurrentDb.Execute "DELETE * FROM Employees WHERE EmpID=1"

'Attempt to read from Employees table before committing; Access hangs
Set rs = CurrentDb.OpenRecordset("Employees")

CommitTrans

解决方法是:

在提交之前从员工表中读取您需要的内容或 在尝试从员工表中读取之前提交插入/更新/删除。

【讨论】:

【参考方案3】:

同意上述cmets,问题似乎是客户端失去了与服务器的连接。如果您为服务器使用主机名,我建议您使用 IP cos 如果它纯粹是一个 dns 问题,如果该问题可以解决,那么它是网络上的问题,如包丢失或服务器过载问题或其他问题那个方向

【讨论】:

【参考方案4】:

有同样的错误:

观察: - 在工作中设置链接到 MSSQL 表的访问数据库 - 从家里,通过 ***,无法打开任何表格 - 每次都出现此错误 - 来自 DSN,进行了测试连接,测试正常 - ping DSN 中使用的 MSSQL 服务器主机名,并且 ping 正常 - 但是,当我用 IP 替换 DSN 中的服务器主机名并重新启动访问时,一切正常。

结论: - 我不确定它是使用 IP 地址还是更改 DSN 设置并保存在某处翻转了一个开关,但它起作用了......希望我不必经常重复......我们会看到......

HTH

【讨论】:

以上是关于odbc sql server driver 通讯链路故障的主要内容,如果未能解决你的问题,请参考以下文章

ODBC database driver for Go:Go语言通过ODBC 访问SQL server

[Microsoft][ODBC SQL Server Driver]超时已过期

powerdesigner中生成数据库时,报错[Microsoft][ODBC SQL Server Driver][SQL Server]未能准备语句。

sql2000安装失败,错误提示([Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server 不存在或?)

java.sql.SQLException [Microsoft] [ODBC SQL Server Driver] [SQL Server] 对象名“表名”无效

sqlserver之[SQL Server]缓冲池中的可用内存不足。[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止