AEW的组态王数据库KVADODBGRID控件关于查询、排序、数据删除例程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/4AEW的组态王数据库KVADODBGRID控件查询、排序、数据删除例程一、例程概述该例程采用KINGVIEW6.53开发,从实用出发,测试实现了以下功能:1)数据库按照每分钟(可更改),按钮(可更改)触发记录插入数据库;2)更改插入数据记录序号标记;3)按用户名日期排序进行查询显示;4)按日期间隔,日期排序或数值排序进行查询显示;5)删除无用用户名(测试或调试时)的数据库数据;6)删除所有数据库记录(更改工艺或空间局限时)。(数据库为ACCESS2007,建立空数据库名字为TEST.ACCDB;组态王添加用户名aew,密码空;数据采用仿真PLC100随机数。)二、组态过程(内容见例程)1)建立所需变量;2)建立记录体、记录模板;3)组态王中建立画面如图:4)程序中建立启动时数据库连接、数据表建立、退出时断开数据库连接;5)建立通用控件KVADODBGRID;6)建立登录、退出、数据库记录插入触发、删除数据和数据全删除、显示全部数据、数据序号显示及更改序号、数据显示等内容;7)建立查询选项(根据我的项目实用,建立了根据日期间隔、操作员查询两个选项、日期选项需建立两个microsoftdateandtime控件分别用于开始日期和结束日期;操作员选项需建立查询操作员输入的文本标签,按操作员查询时,默认为按日期升序进行排序。);8)建立排序选项(根据我的项目实用,选用单选分别为按照日期升序、日期降序、数值升序、数值降序一次列示出来。当然如果选项过多可建立复选框进行组合,在程序中进行编写组合查询功能。);2/49)建立查询和排序按钮;三、建立数据库连接控制面板-ODBC管理器-添加数据源aew-选择access(支持2007)驱动-选择路径下的test.accdb数据库即可。(或建立一个空白的access数据库以备数据插入记录用。)四、控件连接画面中建立的KVADODBGRID控件,控件名称test,保存;控件属性中查找aew数据源,选择表名称1,选择表中的字段名称添加并更改排序及属性;五、其它程序编写1)程序启动时:SQLConnect(DB_NET,dsn=aew;uid=;pwd=);SQLCreateTable(DB_NET,1,1);启动运行后即可退出系统再将第二条注释掉//SQLCreateTable(DB_NET,1,1);2)程序停止时:SQLDisconnect(DB_NET);3)数据改变时:以分为触发写程序(为了测试方便)v_str=$日期++$时间;把日期和时间合并一个字符串IF(RE_SS)记录触发时开始插入记录{no=no+1;SQLInsert(DB_NET,1,1);}插入时序号+14)控件自定义函数:由日期控件中创建自动生成;建立日期控件并定义date1作为开始日期,date2定义作为结束日期;Date1控件事件closeup建立函数并写程序longyear1;longmonth1;longday1;year1=date1.Year;month1=date1.Month;day1=date1.Day;string查询开始时间;if(month110&&day110){查询开始时间=StrFromInt(year1,10)+-+0+StrFromInt(month1,10)+-+0+StrFromInt(day1,10);}if(month110&&day1=10){查询开始时间=StrFromInt(year1,10)+-+0+StrFromInt(month1,10)+-+StrFromInt(day1,10);}if(month1=10&&day110){查询开始时间=StrFromInt(year1,10)+-+StrFromInt(month1,10)+-+0+StrFromInt(day1,10);}if(month1=10&&day1=10){查询开始时间=StrFromInt(year1,10)+-+StrFromInt(month1,10)+-+StrFromInt(day1,10);}开始日期=查询开始时间;Date2控件事件同date1末句为:结束日期=查询结束时间;5)查询排序按钮程序3/4STRINGWHE;if(ds_mode==0){if(sort==0){WHE=日期={d'+开始日期+'}and日期={d'+结束日期+'}+ORDERBY日期时间ASC;}if(sort==1){WHE=日期={d'+开始日期+'}and日期={d'+结束日期+'}+ORDERBY日期时间DESC;}if(sort==2){WHE=日期={d'+开始日期+'}and日期={d'+结束日期+'}+ORDERBY数值ASC;}if(sort==3){WHE=日期={d'+开始日期+'}and日期={d'+结束日期+'}+ORDERBY数值DESC;}}if(ds_mode==1){WHE=操作员='+user_req+'+ORDERBY日期时间ASC;}test.Where=WHE;test.FetchData();test.FetchEnd();6)其它按钮标签组态简单可双击对象参看六、运行查看1)点击REFRESH,数据库全部显示,可以看到日期并未排序;2)选择按系统管理员查询;3)选择按日期查询,并选择起始和结束日期,并选择排序选项,再点击查询排序按钮;顺利的话,可以选择其它选项查看效果。4/4以前出现过类似问题,就是程序不用编程,理应数据库插入和显示应该按照日期顺序,但实际上数据库不知何时就出现控件显示乱序,咨询过亚控技术,说是数据库问题,其它数据库也会有排序乱问题。最近通过学习例程,掌握了查询排序的方法和技巧,虽然不影响数据的存储,但锦上添花应该完美!和同行共享交流~~~西安朗利电气设备有限公司2014-4-30

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功