1

我看过其他关于使用 PHP 和 ADO 访问 ODBC 数据库的帖子,但我认为我的问题没有在 PHP 之外提出。我最近接手了一个项目,其中一个触摸屏界面运行 Windows XP,并使用一些与 Java 极为相似的专有欧洲编程语言与 PLC 和机器进行交互。

我们定期记录来自各种传感器的信息,然后使用该程序打开与 ODBC 数据库的连接并存储记录。我的任务是追踪一个错误,其中数据只是无缘无故地一次停止记录数天,我确信它与 ODBC 数据库(可修复)或 Windows 和 Windows 之间的版本不兼容有关PLC(不可修复)。所以我先拍摄可修复的。

该程序创建一个新的 ActiveXObject 并使用 ADO 打开与数据库的连接,将命令串在一起,执行它,然后关闭连接。每次创建记录时都会执行所有这些操作,我试图找出原始程序员这样做的原因,而不是创建 adodb.Connection,打开它,然后为每个数据记录进行事务处理写,只有当用户相当程序时才关闭它。

我唯一能想到的是,他们担心如果触摸屏在连接打开时断电会发生什么。那会做什么?没有人真正了解我们正在使用的这种几乎是 Java 的语言,所以我不能确定当程序关闭时 ActiveXObjects 会发生什么。像这样的事情会导致这些长达几天的录音失误,还是我完全找错了树?

4

1 回答 1

3

每次需要时打开和关闭连接通常被认为是更安全且网络强度最低的方法。唯一效率低下的情况是当对数据库进行许多调用时,它们之间没有经过太多时间。

有时不建议打开数据库连接。在您使用基于文件的数据库(例如 Visual Foxpro 或 MS Access)的情况下,数据库文件实际上可能会因网络连接被删除而损坏,尽管我认为通常情况下要发生这种情况,连接需要在写入期间删除某种。

您有任何错误控制或调试选项吗?每次尝试调用数据库时,您能否写入文本文件?

我真的不认为这里使用的语言过于重要,因为您使用的是 ADO、ODBC,并且我假设某种标准数据库格式。故障可能在于其中一种技术,除非代码中某处出现错误,导致数据记录例程无法触发。

于 2013-11-05T01:12:30.610 回答