WINCC中使用ADO对象连接数据库-例子-常用属性-方法_第1页
WINCC中使用ADO对象连接数据库-例子-常用属性-方法_第2页
WINCC中使用ADO对象连接数据库-例子-常用属性-方法_第3页
WINCC中使用ADO对象连接数据库-例子-常用属性-方法_第4页
WINCC中使用ADO对象连接数据库-例子-常用属性-方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。以下以报警记录为例。一、了解ADO对象1.1 ADO对象操作数据库是微软提供的一种接口。1.2 对ADO对象的访问使用 CreateObject函数(详情请参看 CreateObject函数资料) ADO组件的前缀是ADODB所以访问的时候必须为 ADODB.XX(X代表对象) eg:dim conn,oRs,oComSet conn = CreateObject("ADODB.Connection") 'Conn

2、ection 对象Set oRs = CreateObject("ADODB.Recordset") 'ADODB.Recordse 对象Set oCom = CreateObject("ADODB.Command")'ADODB.Command 命令对象二、对象2.1 Connection 对象2.1.1 open 方法语法connection.Open ConnectionString,UserID,Password,OpengOptions说明ConnectionString:可选参数,字符串,包含连接信息UserID:可选参数,字

3、符串,包含建立连接时候用的用户名Password可选参数,字符串,包含建立连接时候用密码OpenOptions:可选参数,连接打开方式eg1:(连接数据库代码方法1,仅连接部分代码)Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.ConnectionString ="Provider=WinCCOLEDBProvider.1;Catalog="

4、;&tagDSNName.Read&"Data Source=.WinCC" conn.CursorLocation = 3conn.Openeg2: (连接数据代码方法2,连接部分代码)Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=Win

5、CCOLEDBProvider.1;Catalog="&tagDSNName.Read&"Data Source=.WinCC"2.1.2 close 方法connection.closeeg:Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Prov

6、ider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&"Data Source=.WinCC"'这里写上对数据库查询,修改等操作conn.close2.1.3 execute 方法语法Cn.Execute strCommand,IngRowsAffected,IngOptions说明strCommand :可以是查询语句、表名、存储过程名等IngRowsAffected:可选参数,返回Insert、Update、Delete查询语句后所影响的数目IngOptiongs: 参数可以如下adCm

7、dUnkown:Command 类型未定,由数据源提供者去判断Command 语法AdCmd是和对象类型相应的文件名称adCmdStoredProc:Command 是存储过程名称adCmdTable:Command 是能产生内部 SELECT*FROM TableNam羞询的表名称adCmdTableDirect:Command 是能直接从表中获取行内容的表名称adCmdText:Command 是一条 SQL语句eg:Dim conn,oCom,oRsDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("DatasourceNameRT&

8、quot;)Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&"Data Source=.WinCC"Set oCom = CreateObject("ADODB.Command")Set oRs = CreateObject("ADODB.Recordset")oC

9、om.CommandType=1Set oCom.ActiveConnection = connoCom.CommandText ="ALARMVIEW:Select * FROM AlgViewCHT "Set oRs = oCom.Execute'以上4 句还可以写成Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")conn.close2.2 Recordset 对象Recordset 常用属性RecordsetCount:返回当前记录的数目BOF表示当前记录位于该对象第一个

10、记录之前 EOFt示当前记录位于该对象最后一个记录之后。 movefirst :移动到第一条 movenext :移动到下一条movelast:移动到最后一条eg:Dim conn,oCom,oRsDim mDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.

11、1;Catalog="&tagDSNName.Read&"Data Source=.WinCC"Set oRs = CreateObject("ADODB.Recordset")Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ") m = oRs.RecordCount msgbox "报警行数"&mconn.close2.2.1 Open 方法 语法recordset.Open Source,ActiveConne

12、ction,CursorType,LockType,Options 说明Source:可选参数,变体型,计算 Command对象的变量名、SQL语句、表名、存储过程调 用或持久的Recordst件名ActiveConnection: 可选参数,变体型,计算有效Connection 对象变量名或字符串,包含ConnectionString 参数CursorType可选参数,用于确定数据提供者打开Recordset时应该使用游标类型,类型如下adOpenForwardOnly:打开仅向前类型游标(默认类型) adOpenKeyset打开键集类型游标 adOpenDynamic打开动态类型游标 ad

13、OpenStatic打开静态类型游标 注:具体解释请参考百度结果,这里我们主要讲解应用方面的东西。LockType可选参数,确定数据提供者打开Recordset时应该使用的锁定(并发)类型的LockTypeEnum值,类型如下adLockReadOnlyH读,默认值adLockPessinistic守式锁定,提供者完成确保成功编辑记录所需的工作,通常通过在编辑时候锁定数据源的记录来完成。adLockOptimistic:开放式锁定,提供者试用开放式锁定,只在调用 Update方法时才锁 定记录。adLockBatchOptimistic:开放式批更新,用于批更新模式Optiongs:可选参数,

14、长整型,用于指示数据提供者如何计算Source参数,或从以前保存的Recordset中恢复Recordset(以下省略参数类型讲解)eg:Dim conn,oRs,oComDim m,iDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog=&

15、quot;&tagDSNName.Read&"Data Source=.WinCC”Set oRs = CreateObject("ADODB.Recordset")oRs.open "ALARMVIEW:Select * FROM AlgViewCHT ",connm = oRs.RecordCountMsgBox,报警彳f数"&moRs.Closeconn.Close2.3 Command 对象2.3.1 对象属性说明ActiveConnection:使打开的数据库连接与Command对象关联Command

16、Text:可执行的命令文本,如SQL语句CommandType指定命令类型以优化性能CommandTimeout:设置提供者等待命令行的秒数以下摘自西门子连通性文档过程值记录集结构域名林类型注耗ValuelD整理(4字节(或整型字节1值的唯一标识口长度取决于查询的类里口Timestamp日期时间Reah/aiue实型(8字节)变值Quality整型(4宓节)第的尚代码(例如好畲劣*) .Flags整型(4宇节)内部控制察数报警说明ViewName我抵阵表的名券。必须用需要的话当指定该表.例如.五冲 欧洌语言的"ViewName-是:ALGVIEWDEU :德语报消息归喈数疯ALGVI

17、EWENU :英语报消息归港拨客ALGVIEWESP :西班牙诺报消患日档数行 ALGVIEWFRA :法语报消息归档数更 ALGVIEWITA :意大利者报消息归档数更 例如.亚洲语言的"ViovNarg"是: ALGVIEWCHT :中文(僭体)报港”归档数费 ALGV1EWCHT :中文(*体)报消息归档数意 ALGVIEWJPN :日语报消息归吟数竞 ALGVIEWKOR :韩语消息归档数条注支持在WnCC基本系统中安装的备害或者在WmCC文本库 中组态的遏玄,有关可按受的叠卤国E0相应的YiewName” 的信息可在SQL-Server馈接报警归当的.双田.下找到

18、.相应 归档中支持的所忖遇莒昱示也都蒂M冥ID ,例如,此处为 "GENVIEWENU".Condition过沮标准.例如:DateTime>N0030601 AND D2tMime<'2003Q7STDateTime>t2003-0601 17 300GMsgNr = 5MsgNr in (4. 5)State = 2ffffl DateTime rt .仅可使用圮对片间聂不法。位置域名称类型注释1MsgNo整型(4字节)消息号2State.、整型(2字节)报警记录状态3DateTime日期时间(8字节)消息的时间看(不带秒的日期/时间)4Ms小

19、整型(2字节)消息的时间毒(充秒)5InstanceVarChar (255)报瞽记录的实例名称6Flags 1整型(4字节)(仅限于内就使用)7PValueUsed整型(4字节)使用的过程值8到17P Value 1 到 PValuelO买型(8字节)数字过程值1到1018 到 27PTextl 到 PTextIOVarChar (255)过程值文本1到1028ComputerNameVarChar (255)计算机的名称29应用程序VarChar (255)应用程序名称30CommentVarChar (255)注冏31UserNameVarChar (255)用户名32Counter整型

20、(4字书)运行报启息计数器33TimeDiff整型(4字节)与进入状态的时间差34ClassNameVarChar (255)消息类别的名称35TypenameVarChar (255)消息类型的名称36Class小整型(2字弓)消息类别ID37Type小整型(2字节)消息类型ID38 到 47Texll 到 TextIOVarChar (255)消息文本1到1048AG_NR小( 2字节)PLC的缰号49CPU.NR小整型(2字节)CPU的编号50CrComeFore整型(4字节)“进入”状态的前黑色参数描述ValudD数据库袤的他ID可以使用多个名称,例如"TAG:R,(Valu

21、elD_1 :ValuelU_2;VakjelD_x),« I imeBegin>,< imeLnd>MValu eNameValueName 的格式为“ArchivcNQmoM>Lie_N°mr。硕Ff 数 ValueName 拮在单七号 中.可以使用多个名杯,例如TAG:R.(,ValucNamc_r;ValucNamc_Z;,ValucNamc_ict)l <TimcBcgin>f<TimcCnd>" 注物请注意,墉程也告知Visual Basic、VBScnpt或VBA仅允许在变名标中存在以下字符:AN、-a

22、 . z P.9"以及“二.在WinCC中如早在变量名环中使用模妹字符却”成:,则出本将中止并出现错建自更。 这片情况下,可使用坟ID访问只脚本名称中包含特殊字符的变量。TlmeBeyin开始时间,给式为:-YYYY MM DD hh:mm:$s.msc*使用<TimeStep> Bl ,必须将vTimeBeginA指定为绝对纣间。禁止使用相对语句POOO 00 00 oo:oo:oo.oocr<TimeLnd结束时间,格式为:“YYYY-MM-DD hh:mE;ssmsc"SQLCIauseSQL语法中的过滤标准:WHERE search_Condlti

23、orV(ORDER BY order-expresslon ASC|DESC“ORDER BY中值仅可用于给出的排序原序"(order_expression ASC|DESC 实例:以下查询返回变QWueNQmejMTValueN所e_N的所有值,这些侑小于50或大 于 100。AG:R,O/alueNarne.1WalucNome.Z)t<TimeBegin><TifnoEnd. WHERE RealValue > 100 OR RealVaiue < bCF省迷T imeSlep在声明的时福间隔中的俏普汇2,从开始时间vTimeB却2开出幡式:&qu

24、ot;TlMESTCP=j(yK=时间间隔(以秒计)y二篁息类型崖皿同同阍隔培隼)下列信可用于汇总类型:夫推扑轲痛补播逐1 (FIRST)2(USD3 (MIN)4 (MAX)5 (AVG)6 (SUM)7 (COUNTiN5旧RSINTERPOLATE。)258 : LAS7J NT ERPOLATE D)259 MWNTERPQLATE口)2G0 MAX_I NL RPOLA7ED)261 AVGJ N T E PROLATE D)262 SUMJhrTERPOLATtD)263 (COUMTJNTERPOLATED)第一个但 最后一个他小假 最大值中值当利 僧制目天访善味,:如鼠在Bt间间隔中不存在任何倒,JU不返回时间间注炫第“有拓扑步呼加早在时间间隔中不存在任何值,瞧启用花空的都近时间间隔的塔璋斑性 福补需出一分但4不便例外癌士.实例:例如TIM为,对于每小60杪的同同但静,将施翦此时冏间隔的第一个 但 加里此时闾闿隔中那有任何值.皿限向邻近的同间间厢中里一小便的魏惟插补 慝'TAGcK.L7CXmJZ-OH 09:03:OO.OOOVOMXMXHM) OttlO:OO.OGOVTlMEST£产=6(h25L过程值归档:Set

温馨提示

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

最新文档

评论

0/150

提交评论