我有一个MS Access应用程序,可以链接到SQL Server 2008数据库的所有数据。多年来,当SQL Server在Win2008 Standard 64位SP2和SQL Server 2008 v10.0.4上运行时,它运行良好。我最近将后端SQL数据库移动到了更新的服务器(Win2008 R2 Standard 64位和SQL v10.50.1600)。移动后,应用程序上的所有内容都按预期工作正常,没有问题。但是,我们有一个月末流程可以生成相对较大的报告(300-500页),这些报告发现了我们在日常处理中通常看不到的问题。
我的报告基于传递查询。查询几乎瞬间运行并产生8000行。我可以预览查询并快速导航到RS的末尾以查看第8000行。没问题。如果我提取基于该查询的报告,我可以看到有350页,我可以逐页浏览报告,没有任何问题。我甚至可以输入页码并跳转到第50页,100页,150页等,没有任何问题。请注意,报表上的任何已触发事件都不会发生处理/代码/逻辑 - 只显示和格式化数据。
这里出现的问题是:如果我预览报告并尝试跳到第一页的最后一页,它会坐下来思考一会儿(确切地说是38秒),然后抛出错误#3151 ODBC连接到[DNS名称]失败。
如果我只是更新传递查询中的连接字符串,将其指向“旧”SQL Server并运行相同的东西,它就可以正常工作。我已经尝试调整连接字符串以使用IP地址而不是DNS名称,没有运气。这是一个多年没有问题的过程,因此我知道客户端逻辑是合理的。
有任何想法或建议吗?
答案 0 :(得分:1)
好的,这是一个完全粗制滥造的解决方案,多个人在同一个数据库或Access文件上运行它并不是很安全......但它可能会让你今天运行并给你一些喘息空间。但请记住 - 破碎得到修复,伪劣持久。
从报告中获取查询,在运行之前,将结果转储到空的临时表(在MS SQL端或MS Access端),然后使报告从临时表中运行。记得事后清理它,所以没有人依赖这些数据。
如果它在MS Access端工作,但在MS SQL端不工作,那么这将确认新服务器的配置是否有效。