在实际工程中,往往需要将报警信息存入数据库中,便于历史报警信息的查询等操作。
使用比较多的是access数据库。在许多朋友的使用过程中会发现这样一个问题:报警记录不断增加,导致数据库mdb文件不断增大,删除报警记录也无济于事。这时就需要压缩数据库。但是,在报警ODBC运行时,数据库文件一直处于锁定状态,无法进行压缩,出现提示
。
经过本人的摸索,终于找到了解决的方法。
1.在配置报警ODBC时注意图示选项
勾选“允许操作员暂停报警记录”,便于在ifix运行过程中可以暂停对mdb的操作,便于压缩数据库
2.声明操作报警ODBC的函数
Private Declare Function PauseAlarmODBC Lib "missionvba" () As Long'暂停报警写入
Private Declare Function ContinueAlarmODBC Lib "missionvba" () As Long'继续报警写入
3.需要压缩数据库的时候,先暂停报警写入 PauseAlarmODBC (成功返回值为0)
(注意第一张图中配置的“更新时间间隔”设置为1秒,在暂停成功的1秒之内便可以看到下图中的“连接丢失”,(只有连接丢失才可以进行压缩数据库)。因此更新时间间隔不要设置得过大!
4.用脚本删除数据库中记录(这个难不倒各位吧?)
5.用脚本压缩数据库,(网上的代码一大堆,在此就不贴出了)
6.恢复报警写入 ContinueAlarmODBC '(成功返回值为0)
希望此贴能对被此问题困扰的朋友有帮助!