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

上传人:daj****de2 文档编号:149204453 上传时间:2022-09-06 格式:DOCX 页数:24 大小:769.44KB
收藏 版权申诉 举报 下载
组态王对关系数据库的查询说明文档_第1页
第1页 / 共24页
组态王对关系数据库的查询说明文档_第2页
第2页 / 共24页
组态王对关系数据库的查询说明文档_第3页
第3页 / 共24页
资源描述:

《组态王对关系数据库的查询说明文档》由会员分享,可在线阅读,更多相关《组态王对关系数据库的查询说明文档(24页珍藏版)》请在装配图网上搜索。

1、例程说明文档北京亚控科技发展有限公司2022年4月1. 功能概述12. 工程实例13. 操作步骤13.1数据库以及表13.2设置ODBC数据源23.3利用SQL函数进行查询53.4利用KVADODBGrid控件进行查询114. 注意事项221. 功能概述常规需求:很多工业现场要求对关系数据库的数据根据不同的条件进行查询处理。组态王中的实现方法:1)利用组态王的SQL函数实现对数据库的数据的查询处理。2)利用组态王的KVADODBGrid控件实现对数据库的查询处理。这两种实现方法的不同之处在于:第一种方式是将查询结果对应到组态王的变量上, 可以通过组态王的变量进行相关的计算处理以及在命令语言中使

2、用,但是如果符合条件 的记录有许多条则无法同时看到所有的查询选择结果。第二种方式是将查询结果显示到 控件的表格中,可以看到所有符合条件的查询记录,并且可以另存为其他文件以及进行 打印操作,还可以通过控件的属性、方法进行其他的处理。2. 工程实例我们以上一个例程“组态王数据存储到外部数据库”中所存储的数据为例,上一个 例程中我们把原料的生产厂家、原料编号、称量日期、称量时间,值班人员、原料重量 的信息存到了 Access数据库中,现在我们要求对存储的原料信息按照“称量日期”进行 查询。我们假设的前提是这个Access数据库已经存在,并且已经存数据在数据库中。具 体的存储数据到外部Access数据

3、库的过程我们可以参考其他文档来实现。下面就以此为 例来演示完成这一需求的具体步骤。3. 操作步骤3.1数据库以及表1)假设在工程文件夹中已经存在Access数据库,数据库为“数据.mdb”。2)在数据库“数据.mdb ”中有一个数据表:表的名称为:原料数据。字段为:称 量日期、称量时间、原料重量、原料厂家、原料编号、值班人员。如下图一所示:原料 重量为数字类型(单精度),其余为文本类型。3)在数据库的原料数据表中已经存储了许多数据。图一原料数据表3.2设置ODBC数据源1) 在“控制面板”一“管理工具”一“ODBC数据源”中建立ODBC数据源,点 击“ODBC数据源”弹出“ODBC数据源管理器

4、”,如下图二所示:2) 在“系统DSN”中点击“添加”,弹出“选择数据源驱动程序”窗口,如下图 三所示:选择“Microsoft Access Driver (*.mdb)驱动,点击“完成。弹出如图四所示 窗口,填写ODBC数据源的名称,名称可以根据需要任意命名,我们命名为“数据”, 点击“选择(S)”,如图五示,选择工程路径下面的数据库文件“数据.mdb”。点击“确 定”完成ODBC数据源的定义,如图六所示。其他数据库如SQLServer的ODBC定义 请参考相关文档。用户D邻系统DSff文件DSN|驱动程序跟踪 连接池关于驱动程序用户数据源):f ODBC数据源管理春名称DL101DL10

5、4Ewcel Fil&sMS Access DatabaseSOE_DBS0EForHSA5Z5库S jttlc S e-一E;JVi lull F ijirfrci D at abaseVi 5 u=il F c-kFi-? T abl e ;Mi cr Liiijtt . M i cr . Mi cr c-Ec-tt Mi cr Lisijtt . M i cr ijsott 、 Mi crijLitt . Mi cr iisott . SQL Set-verMi cr ijzcitt Vi ziuil Mi cicsctt Vi 5口al 钊AizizeiE Driver L*;. Xc

6、 c & z e Dr l ver (*:.Ekc&L DrLvtjr (*. h A* 已 mm kc cess jlccySEAccess添如(B).JH1DriverDriverDelvpfDriverF LUiFr uFokFi-oDriV-ODBC用户数据源存慵了如何与指定数据提供程序连接的信息-用户数据源只对当前用户可见,而且只能用于当前机器上。U取消1应用也 1帮肪图二ODBC数据源管理器创建额数据源选择您想为其安装数据渡的驱动程序底)OI 完成 取消I图三选择数据源的驱动程序图四数据源定义图五选择数据库图六ODBC数据源定义3.3利用SQL函数进行查询利用组态王的SQL函数可以

7、实现对数据库的记录进行查询、插入、删除等操作,我 们这里只讲述如何进行查询,其他的使用请参考组态王使用手册以及函数手册。组态王 利用SQL函数进行查询时必须首先建立记录体。3.3.1定义变量新建工程,然后定义变量,变量为内存变量。在组态王中定义八个变量:原料厂家 (内存字符串)、原料编号(内存字符串)、原料重量(内存实数)、日期(内存字符 串)、时间(内存字符串)、值班人员(内存字符串)、查询日期(内存字符串)、DevicelD (内存整数)。33.2定义记录体记录体是用来连接数据库的表格的字段和组态王数据词典中的变量。创建记录体:如图七所示:记录体名:Bindl,字段名称为数据库中表的字段名

8、称, 变量名称为组态王数据词典中的变量。字段类型与变量类型需要一致。字段名称要与数 据库中表的字段名称一致。变量名称与字段名称可以不同。记录体名称可以根据需要命 名。图七定义记录体3.3.3建立组态王与数据库的关联组态王与数据库建立与断开关联主要是通过SQL函数来实现。通过SQLConnect()函数建立组态王与数据库的连接。通过SQLDisconnect()函数断开组态王与数据库的连接。本例程中数据库无用户名和密码,具体用法如下:SQLConnect( DevicelD, dsn=数据;uid=;pwd=);其中DeviceID是用户在数据词典中创建的内存整型变量,用来保存SQLConnec

9、t() 为每个数据库连接分配的一个数值。建议将建立数据库连接的命令函数放在组态王的应用程序命令语言的启动时执行, 这样当组态王进入运行系统后自动连接数据库。如下图八所示:建议将断开数据库连接的命令函数放在组态王的应用程序命令语言的停止时执行, 这样当组态王退出运行系统时自动断开数据库的连接。如下图图九所示:注意:此函数在组态王运行中只须进行一次连接,不要把此语句写入“运行时”, 多次执行此命令而造成错误。图八建立与数据库的连接图九断开与数据库的连接3.3.4查询数据库数据库连接成功后,我们就可以通过执行SQL函数对Access数据库的表中的数据 进行查询了,查询主要用到的SQL函数包括SQLS

10、elect()、SQLLast()、SQLFirst()、 SQLPre()、SQLNext()等。详细的函数使用请参考函数使用手册。首先利用组态王提供的画图工具新建一个组态王画面“SQLPic”,如下图十所示:日期、时间、值班人员、原料厂家、原料编号动画连接为字符串输出,连接的变量 为本站点日期、本站点时间、本站点值班人员。原料重量动画连接为模拟值输出, 连接的变量为本站点原料重量。查询日期动画连接为字符串输出、字符串输入,连接 的变量为本站点查询日期。图十组态王画面1) “数据查询”按钮的弹起时命令语言为SQL查询函数,进行数据查询:string whe;whe=称量日期=+本站点查询日期

11、+;SQLSelect( DevicelD,原料数据,Bindl, Whe,);2) “画面切换”按钮的弹起时命令语言为画面切换函数,进行画面的切换:ShowPicture(KVADODBGridPic);3) “下一条记录”按钮的弹起时命令语言为SQL函数,进行下一条记录的选择:SQLNext( DeviceID );4) “上一条记录”按钮的弹起时命令语言为SQL函数,进行上一条记录的选择:SQLPrev( DeviceID );5) “首记录”按钮的弹起时命令语言为SQL函数,进行首项记录的选择:SQLFirst( DeviceID );6) “末记录”按钮的弹起时命令语言为SQL函数,

12、进行末项记录的选择:SQLLast( DevicelD );7) “系统退出”按钮的弹起时命令语言为系统退出函数:Exit( 0 );关于使用到的函数的详细使用方法请参考函数使用手册或者帮助文档。3.3.5进入运行系统画面开发完成后保存画面,在工程浏览器的“系统设置”一“设置运行系统”一“主 画面配置”中,将新建的“SQLPic”画面设置为主画面。确认后点击工程浏览器的“View” 按钮切换到运行系统。系统运行后会将主画面打开,在查询日期处填写要查询数据的日期,点击“数据查 询”按钮则会根据查询日期查询到相应日期的数据,如下图十一所示:通过点击相应的 按钮会实现相应的功能。数据库查询例程演示日

13、 期:2007-03-01 查询日期: 2007-03-01值班人员:李四原抖厂家:邯郸化工原料厂原料编号:YLHD200700慕境退出原料重量:500. 00图十一 运行系统画面3.4利用KVADODBGrid控件进行查询3.4.1 KVADODBGrid 控件的介绍在工程中经常需要访问开放型数据库中的大量数据,如果通过SQL函数编程查询, 因为符合条件的记录比较多,无法同时浏览所有的记录,并且无法形成报表进行打印, 不易使用。针对这种情况,组态王提供了一个通过 ADO访问开放型数据库中数据的 Active X控件一KVADODBGrid。通过该控件,在组态王画面中用户可以很方便的访问 数据

14、库、编辑数据库。可以通过数据库查询窗口对数据库中的数据进行查询,也可以用 控件的统计函数计算出控件中数据的最大、最小值和平均值等。具体的此函数的属性、 方法以及详细的使用请参考组态王使用手册或者组态王帮助。3.4.2 KVADODBGrid 控件的使用在工程中新建画面“KVADODBGridPic”,单击工具箱中的“插入通用控件”按钮 则弹出“插入控件”对话框。在“插入控件”对话框内选择“ KVADODBGrid Class” 控件,如图十二所示,在此画面中放入此控件。双击此控件,为控件命名,控件名称可 以根据需要确定,我们命名为“KV”。图十二插入通用控件选择控件,单击右键,在弹出的菜单中选

15、择“控件属性”。弹出控件固有属性对话 框,如下图十三所示。点击“浏览”按钮弹出“数据链接属性”如图十四所示,选择“连接”选项卡,在 “指定数据源”处选择“使用数据源名称”选项,通过下拉列表选择我们前面所定义的 ODBC。图十三KV控件属性数据源“数据”,点击“确定”,返回图十三画面,“数据源”与“数据库”连接 完成,下面进行数据表的配置。在“表名称”处选择我们需要查询的数据表“原料数据”。选择完成后,数据表的 字段会显示在“有效字段”栏,我们可以将需要的字段添加到右边,在添加过程中可以 对标题以及格式等进行相应的修改,如图十五所示:点击“确定”完成对KV控件的配图十四数据链接属性IV属性数据源

16、表格颜色 字体 打印设置数据遍国:割据数据库甚):|u: E数据库询例程愤二I表名称麒:I原料数菇三浏览|有效字段(V):查询超时:网删除虐)I全加I全删上推(W下稼(W眄间凉口 E量口时厂编重里星料料料邨祢原原原任人员查询条件贫匹中耕EKE后面都分)地);Q观图 系藐表区标题Ct )|值班人员字段虎度) : |50 r字段只读确定1取消应用妙帮助图十五KV控件配置配置完成后KVADODBGrid控件在画面上的显示如图十六所示:同时按下键盘的 “Ctrl” + Alt” + “O”可以对控件的列宽进行设置,我们可以根据字段内容的多少 设置合适的列宽以增加画面的美观程度。设置完成后的画面如图十七

17、所示:图十六KV控件在此基础上,我们进行数据查询功能的实现。如图十八所示为最后完成的画面。其中查询日期的动画连接为字符串输入、字符串输出,连接的变量为本站点查询 日期。“数据查询”按钮的弹起时命令语言为调用KV控件的属性方法进行记录查询:string whe;whe=称量日期=+本站点查询日期+;KV.Where=whe;KV.FetchData();KV.FetchEnd();控件.Where属性:设置查询条件,如果不需要任何条件,则可以设置为空。控件.FetchData方法:执行数据查询,并将查询到的数据集填充到控件中。 控件.FetchEnd方法:结束查询。图十七KV控件图十八 KVAD

18、ODBGrid控件查询画面“打印”按钮的弹起时命令语言为KV控件的打印的方法,进行打印操作:KV.Print();“画面切换”按钮的弹起时命令语言为画面切换函数,进行画面的切换:ShowPicture(SQLPic);“按条件查询”按钮的弹起时命令语言为调用控件的QueryDialog()方法在弹出的对 话框中填入查询条件实现数据查询,具体用法请参看组态王帮助:long aa;aa=KV.QueryDialog();if(aa=1)KV.FetchData();KV.FetchEnd();“保存”按钮的弹起时命令语言为调用控件的SaveToCSV ()方法,把查询出来的数 据保存成CSV格式文

19、件,可以用EXCEL打开查看:string filename;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利用日期时间控件实现

20、按日期查询也是利用KVADODBGrid控件来实现的,上面介绍的是直接在文本对话框里输入日 期实现数据查询,下面介绍通过调用通用控件里的日期时间控件来查询数据,这种方法 是可以直接选择日期时间,使用起来简单方便,具体实现方法如下:1) 在组态王画面中添加两个日期时间控件即:Microsoft Date and Time Picker Control 6.0,控件名称分别为date 1和date2;2) 在date1控件的CLOSEUP事件中输入如下命令语言:long yearl;long monthl;long dayl;year1=date1.Year;month1=date1.Month;

21、day1=date1.Day;string查询开始时间;if(month110&day110)查询 开始时 间 =StrFromInt(year1, 10)+-+0+StrFromInt(month1, 10)+-+0+StrFromInt(day1, 10);if(month1=10)查询开始时间=StrFromInt(year1, 10)+-+0+StrFromInt(month1, 10)+-+StrFromInt(day1, 10);if(month1=10&day1=10&day1=10)查 询 开 始 时 间 =StrFromInt(year1, 10)+-+StrFromInt(

22、month1, 10)+-+StrFromInt(day1, 10);本站点开始时间=查询开始时间;3)在date2控件的CLOSEUP事件中输入如下命令语言:long year2;long month2;long day2;year2=date2.Year;month2=date2.Month;day2=date2.Day;string查询结束时间;if(month210&day210)查询结束时间=StrFromInt(year2, 10)+-+0+StrFromInt(month2, 10)+-+0+StrFromInt(day2, 10);if(month2=10)查询结束时间=Str

23、FromInt(year2, 10)+-+0+StrFromInt(month2, 10)+-+StrFromInt(day2, 10);if(month2=10&day2=10&day2=10)查 询 结 束 时 间=StrFromInt(year2, 10)+-+StrFromInt(month2, 10)+-+StrFromInt(day2, 10);本站点结束时间=查询结束时间;4)在画面上添加一按钮,在按钮的弹起时输入如下命令语言:string whe;whe=称量日期=+本站点开始时间+ and称量日期=+本站点结束时间 + ORDER BY 称量日期ASC;KV.Where=wh

24、e;KV.FetchData();KV.FetchEnd();3.4.4进入运行系统画面开发完成后保存画面,然后点击工程浏览器的“ View ”按钮切换到运行系统。 通过主画面“SQLPic”画面中的“画面切换”按钮切换到“KVADODBGridPic”画面, 系统运行后会将主画面打开,设置需要查询的日期后点击“数据查询”按钮,即可在控 件中的得到查询的结果,如下图十九所示:点击“打印”即可在打印机上面进行打印输出。本控件的其他功能的实现请参考组态王手册以及组态王帮助文档。查询日期:2007-03-05gm邮孵时间成壬1忘匣日端马值班人员30DT-O3-D5LA叩44北京化工点料三厂YLBJ2

25、OH4Ei. 5BEDDT-O3-D5LAALoq北订仆,一亨长=-YLBJ2OH却66无说苛弁Ei2DDT-O3-D5L11L31舌鸟化一房料一suaiEmTLio6TS. ODEDDT-O3-D5L11L瓦1耳主仆,一亨长一mEmirao5D6. np打S12DDT-O3-D5L11Zm耳主也一亨怔一mEmrtiL6DO. ODEDDT-O3-D5L11Eos耳主仆,一亨长一mEmiraz3E8 np画画切换图十九 KVADODBGrid控件运行画面4.注意事项1)记录体的中变量的数据类型和数据库表中的字段类型必须一一对应和匹配。比如:数据库的表的字段的单精度类型与组态王变量的实数类型相匹配,字段的整 数类型与组态王变量整数类型相匹配,字段的文本类型与组态王变量的字符串类型相匹 配。2)SQL函数在执行中出现问题请参考信息窗口的错误提示信息。3)不同的数据库在ODBC数据源的定义是不一样的,请参考相关文档。4)本演示工程只是简单的数据库查询的例程,更深一步的学习使用请参考组态王使 用手册以及函数手册,或者参加组态王培训班。如有问题请致电亚控公司技术部。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!