【问题标题】:VB6 application on Citrix ODBC connection failureCitrix ODBC 连接失败的 VB6 应用程序
【发布时间】:2013-07-10 14:33:43
【问题描述】:

我们有一个 Visual Basic 6 应用程序,它连接到本地 MS Access mdb 文件以在工作处理期间存储一些值。与此文件的连接是通过用户 DSN ODBC 连接完成的。我们已经确定连接的路径是有效的。但是,有时,在看似随机的时间,对该 mdb 文件的调用将失败,并显示路径无效的 ODBC 错误消息。该路径被报告为“null”。在其他时候,我们会收到“磁盘或网络错误”消息。这些错误发生的原因或方式似乎没有任何一致性。

是否有任何我们应该查看的注册表或配置值来确定此问题的根源?该文件在任何时候都不会从服务器中消失,因此我们倾向于认为问题在于 ODBC 配置。

VB 应用程序在 Windows 2003 服务器(32 位)上的 Citrix 下运行。

【问题讨论】:

  • 如果您通过网络连接到此 Access 数据库,那么您可以参与到一系列有趣的效果中。 Access 数据库很容易损坏。确保在遇到此类断开连接后,进行压缩和修复,以防万一。
  • 其实Access数据库文件在同一个设备上。
  • 听起来好像您的本地驱动器不稳定,或者尝试删除和重新创建此数据库的用户之间发生了某种冲突。您是否至少在每个用户的位置创建它,例如在用户的个人资料 (LocalAppData) 中?或者如果没有,您是否使用基于用户名或 App.ThreadID 或其他内容的唯一名称?
  • 其实Access数据库文件在同一个设备上。 – Timbuck - 那么您是使用客户端连接到服务器还是直接使用服务器(即插入服务器的键盘和显示器)?
  • 我们通过 Citrix 会话从不同的设备连接到服务器。数据库文件是在用户的配置文件中创建的。

标签: windows ms-access vb6 odbc citrix


【解决方案1】:

我在经典的 VB 6 应用程序中收到了关于空数据库但未使用 DSN 的相同错误,每当我看到该错误时,通常是在查询损坏的表时。您最后一次压缩和清理数据库是什么时候?

此外,与磁盘或网络错误相结合的错误可能与写入权限和 citrix 有关,就好像它无法写出 .ldb 文件或数据库锁定文件一样。

在发生这些错误之一后,您是否查看过事件查看器,看看是否可以更清楚地了解同时发生的错误?

【讨论】:

  • 为了添加一些信息,我们会“杀死”数据库文件并在用户重新启动我们的应用程序时重新创建一个新文件 - 表面上是为了防止发生这种损坏(我猜这里- 该应用程序已有 15 年历史,我已经在这里工作了 5 年。)mdb 文件是一个包含单行的单个表,用作暂存空间。
猜你喜欢
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多