关于IFIX历史报警数据存储与查询实例.doc_第1页
关于IFIX历史报警数据存储与查询实例.doc_第2页
关于IFIX历史报警数据存储与查询实例.doc_第3页
关于IFIX历史报警数据存储与查询实例.doc_第4页
关于IFIX历史报警数据存储与查询实例.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于IFIX历史报警数据存储与查询实例一.ODBC服务的连接 开始-设置-控制面板-管理工具-数据源ODBC 选用户DNS-添加-选Microsoft Access Driver(*.mdb) 数据源名:Myalarm 选(或创建)数据库名:Alarm.mdb, 文件类型:Access,驱动器D: 连接池-禁止二.系统SCU的配置 SCU-IFIX-配置-报警-报警ODBC服务,启动-修改-区域(A):从报警区域数据库中选择- CLQS-ALM-增加-确定 配置:数据库类型:Access 数据库标识符:Myalarm 列配置:选9项 现在创建表:FIXALARMS(默认表名) 其它默认-确定三.控件的引用1.日期时间控件典型装VB6.0后, 双击选Microsoft date and time picker控件日期控件-属性-格式:1-dtpShortDate,有效前不打勾。其它默认,时间控件-属性-格式:2-dtpTime, 有效前不打勾。其它默认2vxData控件(数据管道)IFIX4.0工具箱底部vxData图标右键-属性vxData对象- 提供者:Microsoft OLE DB Provider for ODBC Drivers 数据库:DNS名:Myalarm,用户名 密码 选项均空-测试连接-测试连接成功-确定 记录源:命令类型:SQL命令应用-确定3vxGrid控件(显示)工具箱底部vxGrid图标选控件 vxGrid1-右键-动画-高级-高级动画配置-行为-ADORecords-动画打勾 数据源:报警记录一览表.vxData1.ADORecords 数据转换:对象四.VBA脚本的编写1初始化脚本代码初始化设置Private Sub CFixPicture_Initialize()设定默认开始时间Me.DTPFromDate = DateAdd(d, -1, Now)Me.DTPFromTime = (00:00:00)设默认结束时间Me.DTPEndDate = NowMe.DTPEndTime = Now设置时间vxData1.QP1 = Format(Me.DTPFromDate.Value, yyyy-MM-DD) & & Format(Me.DTPFromTime.Value, HH:MM:SS)vxData1.QP2 = Format(Me.DTPEndDate.Value, yyyy-MM-DD) & & Format(Me.DTPEndTime.Value, HH:MM:SS)End Sub2. 查询按扭CmbSearch代码如下:开始查询Private Sub CmbSearch_Click()连接自动刷新Me.vxData1.AutoRefresh = TrueFormat函数用于设定时间格式vxData1.QP1 = Format(Me.DTPFromDate.Value, yyyy-MM-DD) & & Format(Me.DTPFromTime.Value, HH:MM:SS)vxData1.QP2 = Format(Me.DTPEndDate.Value, yyyy-MM-DD) & & Format(Me.DTPEndTime.Value, HH:MM:SS)设定查询内容从数据库中查询符合时间段的数据Me.vxData1.SQLCommand = SELECT *FROM FIXALARMS WHERE & _(FIXALARMS.ALM_NATIVETIMEIN = ts QP1)AND(FIXALARMS.ALM_NATIVETIMELAST = ts QP1)AND(FIXALARMS.ALM_NATIVETIMELAST = ts QP2) 刷新数据 Me.vxData1.Refresh Me.vxGrid1.RefreshEnd Sub以上工作结束后保存,退出。重新启动IFIX4.0,运行后即可使用ifix中Access数据库实现自动压缩方式来源:网络 |时间:2010-01-13 | 点击: 72次MS Access数据库在一般情况下,其所占空间将随着数据量的增多而增大,即使在程序中利用SQL语句根据条件删除记录,数据库的大小也不能自动减小(因为删除操作在物理上是没有把数据记录删掉,因此数据库大小将不会减小)。本方式是实现Access数据库的自动压缩,实现平台是iFIX组态软件中实现的。 因为Access是iFIX的ODBC报警记录的存储体,在iFIX运行期间,数据库是按独占方式访问的,程序中将无法利用Access设置的修复和压缩数据库功能。本方式实现的思路是:首先设置ODBC报警数据库(Access)为关闭时压缩选项,然后在程序中把ODBC报警数据库(Access)复制到另一目录,再利用语句把数据库打开,待设定的时间到达后(例如五秒钟)就关闭ODBC报警数据库(Access),最后再把ODBC报警数据库(Access)复制到原来的目录,替换原来的数据库文件。 约定: ODBC报警数据库(Access)文件及存放目录是C:DynamicsMXLAlarmS123.mdb; ODBC报警数据库(Access)文件临时存放目录是:C:DynamicsMXLAlarmBack; Access运行程序及存放目录为:C:Program FilesMicrosoft OfficeOFFICE11 MSACCESS.EXE。 下边是实现步骤及图解: 1 对ODBC报警数据库(Access)文件S123.mdb进行设置。 打开数据库文件,单击工具-宏-安全性选项,在安全级选项卡内选择地,如下图所示; 单击工具-选项,在常规选项卡内选上关闭时压缩选项。如下如所示; 2 iIFX中添加代码。 在VB脚本编辑环境内,在菜单栏上选择工具-引用,在对话框内添加对Microsoft Scripting Runtime的引用,这是为了在程序中可对文件进行操作; 在脚本最顶端添加两个API函数,用来在程序中实现对Windows窗口的操作,添加的函数为(可以直接复制粘贴): Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SendMessage& Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) 编写操作代码: 代码及说明 Dim hw&, cnt& 存放Windows句柄 = = Dim srcfile As String 存放数据库原文件 Dim desfile As String 存放数据库临时文件 srcfile = C:DynamicsMXLAlarmS123.mdb 设置数据库原文件目录文件地址 Dim Fso As New FileSystemObject 创建 FSO 对象实例 Dim filepath As String 设置数据库临时文件目录文件地址 desfile = C:DynamicsMXLAlarmBackS123.mdb 将数据库原文件拷贝至临时文件目录,若存在同名文件则覆盖 Fso.CopyFile srcfile, desfile, True = = 利用Shell命令把临时数据库文件打开 Shell C:Program FilesMicrosoft OfficeOFFICE11MSACCESS.EXE C:DynamicsMXLAlarmBackS123.mdb, vbMinimizedNoFocus 设定时间间隔 start = Timer 时间间隔摄动为5S Do While Timer start + 5 DoEvents Loop 5秒时间到达后,关闭数据库临时文件 hw& = FindWindow(vbNullString, Microsoft Access)查找Microsoft Access窗体 hw&不为零则表示找到要关闭的窗体,并发送消息,关闭窗体 If hw& 0 Then cnt& = SendMessage(hw&, &H10, 0, 0&) 关闭窗体 End If 将临时文件复制到原文件目录,并覆盖原文件 Fso.CopyFile desfile, srcfile, True 程序结束 3 在iFIX实现Access数据库的自动压缩,可以利用调度来实现。只需设定触发时间,利用SQL语句操作数据库删除过期数据记录后,就可调用这段代码实现数据库的自动压缩,防止Access数据库无限增大。 Dim conn As New ADODB.Connection conn.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:MyAlarmRPT.mdb;User Id=;Password=; conn.Open Dim sql As String sql = DELETE FROM FIXALARMS conn.Execute sql, , adExecuteNoRecords Set conn = Nothing - - 杭州集益科技有限公司是美国通用电气G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论