首页 组态王对关系数据库的查询说明文档

组态王对关系数据库的查询说明文档

举报
开通vip

组态王对关系数据库的查询说明文档组态王对关系数据库的查询例程说明文档“组态王对关系数据库的査询”例程说明文档“组态王对关系数据库的査询”例程说明文档目录TOC\o"1-5"\h\z功能概述1工程实例1操作步骤13.1数据库以及表1HYPERLINK\l"bookmark2"\o"CurrentDocument"3.2设置ODBC数据源23.3利用SQL函数进行查询5HYPERLINK\l"bookmark30"\o"CurrentDocument"3.4利用KVADODBGrid控件进行查询11HYPERLINK\l"bookm...

组态王对关系数据库的查询说明文档
组态王对关系数据库的查询例程说明文档“组态王对关系数据库的査询”例程说明文档“组态王对关系数据库的査询”例程说明文档目录TOC\o"1-5"\h\z功能概述1工程实例1操作步骤13.1数据库以及表1HYPERLINK\l"bookmark2"\o"CurrentDocument"3.2设置ODBC数据源23.3利用SQL函数进行查询5HYPERLINK\l"bookmark30"\o"CurrentDocument"3.4利用KVADODBGrid控件进行查询11HYPERLINK\l"bookmark62"\o"CurrentDocument"4.注意事项221.功能概述常规需求:很多工业现场要求对关系数据库的数据根据不同的条件进行查询处理。组态王中的实现方法:1)利用组态王的SQL函数实现对数据库的数据的查询处理。2)利用组态王的KVADODBGrid控件实现对数据库的查询处理。这两种实现方法的不同之处在于:第一种方式是将查询结果对应到组态王的变量上,可以通过组态王的变量进行相关的计算处理以及在命令语言中使用,但是如果符合条件的记录有许多条则无法同时看到所有的查询选择结果。第二种方式是将查询结果显示到控件的表格中,可以看到所有符合条件的查询记录,并且可以另存为其他文件以及进行打印操作,还可以通过控件的属性、方法进行其他的处理。2.工程实例我们以上一个例程“组态王数据存储到外部数据库”中所存储的数据为例,上一个例程中我们把原料的生产厂家、原料编号、称量日期、称量时间,值班人员、原料重量的信息存到了Access数据库中,现在我们要求对存储的原料信息按照“称量日期”进行查询。我们假设的前提是这个Access数据库已经存在,并且已经存数据在数据库中。具体的存储数据到外部Access数据库的过程我们可以参考其他文档来实现。下面就以此为例来演示完成这一需求的具体步骤。3.操作步骤3.1数据库以及表1)假设在工程文件夹中已经存在Access数据库,数据库为“数据.mdb”。2)在数据库“数据.mdb”中有一个数据表:表的名称为:原料数据。字段为:称量日期、称量时间、原料重量、原料厂家、原料编号、值班人员。如下图一所示:原料重量为数字类型(单精度),其余为文本类型。3)在数据库的原料数据表中已经存储了许多数据。图一原料数据表3.2设置ODBC数据源在“控制面板”一“管理工具”一“ODBC数据源”中建立ODBC数据源,点击“ODBC数据源”弹出“ODBC数据源管理器”,如下图二所示:在“系统DSN”中点击“添加”,弹出“选择数据源驱动程序”窗口,如下图三所示:选择“MicrosoftAccessDriver(*.mdb)”驱动,点击“完成"。弹出如图四所示窗口,填写ODBC数据源的名称,名称可以根据需要任意命名,我们命名为“数据”,点击“选择(S)”,如图五示,选择工程路径下面的数据库文件“数据.mdb”。点击“确定”完成ODBC数据源的定义,如图六所示。其他数据库如SQLServer的ODBC定义请参考相关文档。“组态王对关系数据库的查询”例程说明文档“组态王对关系数据库的查询”例程说明文档图二ODBC数据源管理器進择您想为苴妄装数据源的砸动程序逗)O名称BriverdaMicroso£tparm:±rqiiivostentoHriverduMicroeuftAcceee(.*.ndb)EriverdoMicroeoft>iT:ase(+:.dlif.'lHriverduMicrosoftExcel〔»:.mIe〕IlriverduMicroeuftPar曰>1o:<(_:+:.db.)HriverparaoMicroeoftVi三口alFoxT'roM11:rue«:■11AccezEIlrivert.:+:-mlb;lMicrosoftAcccEE_Trei'ber*mdl〕MicrijEi:»ftdf;:±eeDriver(*.dbfJMicrasottilE:aseOFDriwer(*.dbE)I完成]图三选择数据源的驱动程序取消I图四数据源定义图五选择数据库"组态王对关系数据库的査询”例程说明文档"组态王对关系数据库的査询”例程说明文档图六ODBC数据源定义3.3利用SQL函数进行查询利用组态王的SQL函数可以实现对数据库的记录进行查询、插入、删除等操作,我们这里只讲述如何进行查询,其他的使用请参考组态王使用手册以及函数手册。组态王利用SQL函数进行查询时必须首先建立记录体。3・3・1定义变量新建工程,然后定义变量,变量为内存变量。在组态王中定义八个变量:原料厂家(内存字符串)、原料编号(内存字符串)、原料重量(内存实数)、日期(内存字符串)、时间(内存字符串)、值班人员(内存字符串)、查询日期(内存字符串)、DevicelD(内存整数)。3・3・2定义记录体记录体是用来连接数据库的表格的字段和组态王数据词典中的变量。创建记录体:如图七所示:记录体名:Bindl,字段名称为数据库中表的字段名称,变量名称为组态王数据词典中的变量。字段类型与变量类型需要一致。字段名称要与数据库中表的字段名称一致。变量名称与字段名称可以不同。记录体名称可以根据需要命名。图七定义记录体3.3.3建立组态王与数据库的关联组态王与数据库建立与断开关联主要是通过SQL函数来实现。通过SQLConnect()函数建立组态王与数据库的连接。通过SQLDisconnect()函数断开组态王与数据库的连接。本例程中数据库无用户名和密码,具体用法如下:SQLConnect(DevicelD,"dsn=数据;uid=;pwd=");其中DevicelD是用户在数据词典中创建的内存整型变量,用来保存SQLConnect()为每个数据库连接分配的一个数值。建议将建立数据库连接的命令函数放在组态王的应用程序命令语言的启动时执行,这样当组态王进入运行系统后自动连接数据库。如下图八所示:建议将断开数据库连接的命令函数放在组态王的应用程序命令语言的停止时执行,这样当组态王退出运行系统时自动断开数据库的连接。如下图图九所示:注意:此函数在组态王运行中只须进行一次连接,不要把此语句写入“运行时”,多次执行此命令而造成错误。“组态王对关系数据库的查询”例程说明文档"组态王对关系数据库的査询”例程说明文档图八建立与数据库的连接图九断开与数据库的连接3.3.4查询数据库数据库连接成功后,我们就可以通过执行SQL函数对Access数据库的表中的数据进行查询了,查询主要用到的SQL函数包括SQLSelect()、SQLLast()、SQLFirst()、SQLPre()、SQLNext()等。详细的函数使用请参考函数使用手册。首先利用组态王提供的画图工具新建一个组态王画面“SQLPic”,如下图十所示:日期、时间、值班人员、原料厂家、原料编号动画连接为字符串输出,连接的变量为\\本站点\日期、\\本站点\时间、\\本站点\值班人员。原料重量动画连接为模拟值输出,连接的变量为\\本站点\原料重量。查询日期动画连接为字符串输出、字符串输入,连接的变量为\\本站点\查询日期。图十组态王画面“数据查询”按钮的弹起时命令语言为SQL查询函数,进行数据查询:stringwhe;whe="称量日期='"+\\本站点\查询日期+"'";SQLSelect(DevicelD,"原料数据","Bindl",Whe,"");“画面切换”按钮的弹起时命令语言为画面切换函数,进行画面的切换:ShowPicture("KVADODBGridPic");“下一条记录”按钮的弹起时命令语言为SQL函数,进行下一条记录的选择:SQLNext(DeviceID);“上一条记录”按钮的弹起时命令语言为SQL函数,进行上一条记录的选择:SQLPrev(DeviceID);“首记录”按钮的弹起时命令语言为SQL函数,进行首项记录的选择:SQLFirst(DeviceID);“末记录”按钮的弹起时命令语言为SQL函数,进行末项记录的选择:SQLLast(DevicelD);“系统退出”按钮的弹起时命令语言为系统退出函数:Exit(0);关于使用到的函数的详细使用方法请参考函数使用手册或者帮助文档。3・3・5进入运行系统画面开发完成后保存画面,在工程浏览器的“系统设置”一“设置运行系统”一“主画面配置”中,将新建的“SQLPic”画面设置为主画面。确认后点击工程浏览器的“View”按钮切换到运行系统。系统运行后会将主画面打开,在查询日期处填写要查询数据的日期,点击“数据查询”按钮则会根据查询日期查询到相应日期的数据,如下图十一所示:通过点击相应的按钮会实现相应的功能。数据库查询例程演示日期:2007-03-01时间:11:14:40值班人员:李四原料厂家:邯郸化工原料厂原料编号:YLHD200700原料重量:500.00运行系统画面“组态王对关系数据库的查询”例程说明文档“组态王对关系数据库的查询”例程说明文档"组态王对关系数据库的査询”例程说明文档3.4利用KVADODBGrid控件进行查询KVADODBGrid控件的介绍在工程中经常需要访问开放型数据库中的大量数据,如果通过SQL函数编程查询,因为符合条件的记录比较多,无法同时浏览所有的记录,并且无法形成报表进行打印,不易使用。针对这种情况,组态王提供了一个通过ADO访问开放型数据库中数据的ActiveX控件一KVADODBGrid。通过该控件,在组态王画面中用户可以很方便的访问数据库、编辑数据库。可以通过数据库查询窗口对数据库中的数据进行查询,也可以用控件的统计函数计算出控件中数据的最大、最小值和平均值等。具体的此函数的属性、方法以及详细的使用请参考组态王使用手册或者组态王帮助。KVADODBGrid控件的使用在工程中新建画面“KVADODBGridPic”,单击工具箱中的“插入通用控件”按钮则弹出“插入控件”对话框。在“插入控件”对话框内选择“KVADODBGridClass”控件,如图十二所示,在此画面中放入此控件。双击此控件,为控件命名,控件名称可以根据需要确定,我们命名为“KV”。图十二插入通用控件选择控件,单击右键,在弹出的菜单中选择“控件属性”。弹出控件固有属性对话框,如下图十三所示。点击“浏览”按钮弹出“数据链接属性”如图十四所示,选择“连接”选项卡,在“指定数据源”处选择“使用数据源名称”选项,通过下拉列表选择我们前面所定义的ODBC。图十三KV控件属性数据源“数据”,点击“确定”,返回图十三画面,“数据源”与“数据库”连接完成,下面进行数据表的配置。在“表名称”处选择我们需要查询的数据表“原料数据”。选择完成后,数据表的字段会显示在“有效字段”栏,我们可以将需要的字段添加到右边,在添加过程中可以对标题以及格式等进行相应的修改,如图十五所示:点击“确定”完成对KV控件的配图十四数据链接属性IVJS性X数据濾恚格斬色字体打丽设置数据遞逍:數据数据库世):|u:1数据库直询例程遴二|表名称®:|原斜数据三|有效字段电):删际⑧I全加I全删I上穫(W下穫(W雨视图迪超表址标题Ct)朗间凉号量凿口时厂編重駆£量料料料艇祁称原原原直班人负|值班人员構式⑪岡3对齐⑹®左对齐1)C右对齐施)C居中©字段宽度H):|50厂孚段只读查询超时:|90查询条件CSQL中卅HEKE后面部分)址〕;确定1取消应用(A)帮助」图十五KV控件配置配置完成后KVADODBGrid控件在画面上的显示如图十六所示:同时按下键盘的“Ctrl”+“Alt”+“0”可以对控件的列宽进行设置,我们可以根据字段内容的多少设置合适的列宽以增加画面的美观程度。设置完成后的画面如图十七所示:图十六KV控件在此基础上,我们进行数据查询功能的实现。如图十八所示为最后完成的画面。其中查询日期的动画连接为字符串输入、字符串输出,连接的变量为\\本站点\查询日期。“数据查询”按钮的弹起时命令语言为调用KV控件的属性方法进行记录查询:stringwhe;whe="称量日期='"+\\本站点\查询日期+"'";KV.Where=whe;KV.FetchData();KV.FetchEnd();控件.Where属性:设置查询条件,如果不需要任何条件,则可以设置为空。控件.FetchData方法:执行数据查询,并将查询到的数据集填充到控件中。控件.FetchEnd方法:结束查询。图十七KV控件查询曰期;;#:#:称国1期.声阳h图十八KVADODBGrid控件查询画面“打印”按钮的弹起时命令语言为KV控件的打印的方法,进行打印操作:KV.Print();“画面切换”按钮的弹起时命令语言为画面切换函数,进行画面的切换:ShowPicture("SQLPic");“按条件查询”按钮的弹起时命令语言为调用控件的QueryDialog()方法在弹出的对话框中填入查询条件实现数据查询,具体用法请参看组态王帮助:longaa;aa=KV.QueryDialog();if(aa==1){KV.FetchData();KV.FetchEnd();}“保存”按钮的弹起时命令语言为调用控件的SaveToCSV()方法,把查询出来的数据保存成CSV格式文件,可以用EXCEL打开查看:stringfilename;filename=InfoAppDir()+StrFromReal(\\本站点\$年,0,"f")+StrFromReal(\\本站点\$月,0,"f")+StrFromReal(\\本站点\$日,0,"f")+StrFromReal(\\本站点\$时,0,"f")+StrFromReal(\\本站点\$分,0,"f")+StrFromReal(\\本站点\$秒,0,"f")+".csv";KV.SaveToCSV(filename);在使用KVADODBGrid控件过程中用到的控件的属性、方法请参考手册或者帮助文档。3.4.3利用日期时间控件实现按日期查询也是利用KVADODBGrid控件来实现的,上面介绍的是直接在文本对话框里输入日期实现数据查询,下面介绍通过调用通用控件里的日期时间控件来查询数据,这种方法是可以直接选择日期时间,使用起来简单方便,具体实现方法如下:在组态王画面中添加两个日期时间控件即:MicrosoftDateandTimePickerControl6.0,控件名称分别为date1和date2;在datel控件的CLOSEUP事件中输入如下命令语言:longyear1;longmonth1;longday1;year1=date1.Year;month1=date1.Month;day1=date1.Day;string查询开始时间;if(month1<10&&day1<10){查询开始时间=StrFromInt(year1,10)+"-"+"0"+StrFromInt(month1,10)+"-"+"0"+StrFromInt(day1,10);}if(month1<10&&day1>=10){查询开始时间=StrFromInt(year1,10)+"-"+"0"+StrFromInt(month1,10)+"-"+StrFromInt(day1,10);}if(month1>=10&&day1<10){查询开始时间=StrFromInt(year1,10)+"-"+StrFromInt(month1,10)+"-"+"0"+StrFromInt(day1,10);}if(month1>=10&&day1>=10){查询开始时间=StrFromInt(year1,10)+"-"+StrFromInt(month1,10)+"-"+StrFromInt(day1,10);}\\本站点\开始时间=查询开始时间;3)在date2控件的CLOSEUP事件中输入如下命令语言:longyear2;longmonth2;longday2;year2=date2.Year;month2=date2.Month;day2=date2.Day;string查询结束时间;if(month2<10&&day2<10){查询结束时间=StrFromInt(year2,10)+"-"+"0"+StrFromInt(month2,10)+"-"+"0"+StrFromInt(day2,10);}if(month2<10&&day2>=10){查询结束时间=StrFromInt(year2,10)+"-"+"0"+StrFromInt(month2,10)+"-"+StrFromInt(day2,10);}if(month2>=10&&day2<10){查询结束时间=StrFromInt(year2,10)+"-"+StrFromInt(month2,10)+"-"+"0"+StrFromInt(day2,10);}if(month2>=10&&day2>=10){查询结束时间=StrFromInt(year2,10)+"-"+StrFromInt(month2,10)+"-"+StrFromInt(day2,10);}\\本站点\结束时间=查询结束时间;4)在画面上添加一按钮,在按钮的弹起时输入如下命令语言:"组态王对关系数据库的査询”例程说明文档"组态王对关系数据库的査询”例程说明文档stringwhe;whe="称量日期>='"+\\本站点\开始时间+"'and称量日期v='"+\\本站点\结束时间+"'"+"ORDERBY'称量日期'ASC";KV.Where=whe;KV.FetchData();KV.FetchEnd();3・4・4进入运行系统画面开发完成后保存画面,然后点击工程浏览器的“View”按钮切换到运行系统。通过主画面“SQLPic”画面中的“画面切换”按钮切换到“KVADODBGridPic”画面,系统运行后会将主画面打开,设置需要查询的日期后点击“数据查询”按钮,即可在控件中的得到查询的结果,如下图十九所示:点击“打印”即可在打印机上面进行打印输出。本控件的其他功能的实现请参考组态王手册以及组态王帮助文档。查询日期:2007-03-05fir却佰反和厂衣PUT2DDT-O3-D5m:qo:4q北京化工原料三厂SLBJ2KIT4E£i.5B无掠荼用EiZ0DT-O3-D5m:qL:oqYLBJ20JT4Efl.6B2DDT-O3-D5L1:1L:3J芒乌件厂寡林一suaiEmTLio6TS.ODZ0DT-O3-D5L1:1L:9J诸主儿一于林一mEmirao5D6.Opr印2DDT-O3-D5Li:iz:mmEmrtiL600.ODE0DT-03-D5L1:1Z:OB诸主儿一于林一mEmiraz3&S.np图十九KVADODBGrid控件运行画面4.注意事项1)记录体的中变量的数据类型和数据库表中的字段类型必须一一对应和匹配。比如:数据库的表的字段的单精度类型与组态王变量的实数类型相匹配,字段的整数类型与组态王变量整数类型相匹配,字段的文本类型与组态王变量的字符串类型相匹配。2)SQL函数在执行中出现问题请参考信息窗口的错误提示信息。3)不同的数据库在ODBC数据源的定义是不一样的,请参考相关文档。
本文档为【组态王对关系数据库的查询说明文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
明明如月
暂无简介~
格式:doc
大小:798KB
软件:Word
页数:25
分类:高中语文
上传时间:2022-09-15
浏览量:1