当前位置:文档之家› WINCC中使用ADO对象连接数据库 例子 常用属性 方法

WINCC中使用ADO对象连接数据库 例子 常用属性 方法

在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。

以下以报警记录为例。

一、了解ADO对象1.1ADO对象操作数据库是微软提供的一种接口。

1.2对ADO对象的访问使用CreateObject函数(详情请参看CreateObject函数资料)ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象)eg:dim conn,oRs,oComSet conn = CreateObject("ADODB.Connection") 'Connection对象Set oRs = CreateObject("ADODB.Recordset") 'ADODB.Recordset对象Set oCom = CreateObject("mand") 'mand命令对象二、对象2.1 Connection 对象2.1.1 open 方法语法connection.Open ConnectionString,UserID,Password,OpengOptions说明ConnectionString:可选参数,字符串,包含连接信息UserID:可选参数,字符串,包含建立连接时候用的用户名Password:可选参数,字符串,包含建立连接时候用密码OpenOptions:可选参数,连接打开方式eg1:(连接数据库代码方法1,仅连接部分代码)Dim connDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.ConnectionString ="Provider=WinCCOLEDBProvider.1;Catalog="&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=WinCCOLEDBProvider.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 "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"'这里写上对数据库查询,修改等操作conn.close2.1.3 execute方法语法Cn.Execute strCommand,[IngRowsAffected[,IngOptions]]说明strCommand:可以是查询语句、表名、存储过程名等IngRowsAffected:可选参数,返回Insert、Update 、Delete查询语句后所影响的数目 IngOptiongs: 参数可以如下adCmdUnkown:Command类型未定,由数据源提供者去判断Command语法AdCmd是和对象类型相应的文件名称adCmdStoredProc:Command是存储过程名称adCmdTable:Command是能产生内部SELECT*FROM TableName查询的表名称adCmdTableDirect:Command是能直接从表中获取行内容的表名称adCmdText:Command是一条SQL语句eg:Dim conn,oCom,oRsDim tagDSNNameSet tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")Set conn = CreateObject("ADODB.Connection")conn.CursorLocation = 3conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"Set oCom = CreateObject("mand")Set oRs = CreateObject("ADODB.Recordset")mandType=1Set oCom.ActiveConnection = connmandText ="ALARMVIEW:Select * FROM AlgViewCHT "Set oRs = oCom.Execute'以上4句还可以写成 Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")conn.close2.2 Recordset对象Recordset 常用属性RecordsetCount:返回当前记录的数目BOF:表示当前记录位于该对象第一个记录之前EOF:表示当前记录位于该对象最后一个记录之后。

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.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"Set oRs = CreateObject("ADODB.Recordset")Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")m = oRs.RecordCountmsgbox "报警行数"&mconn.close2.2.1 Open方法语法recordset.Open Source,ActiveConnection,CursorType,LockType,Options说明Source:可选参数,变体型,计算Command对象的变量名、SQL语句、表名、存储过程调用或持久的 Recordst文件名ActiveConnection:可选参数,变体型,计算有效Connection对象变量名或字符串,包含 ConnectionString参数CursorType:可选参数,用于确定数据提供者打开Recordset时应该使用游标类型,类型如下adOpenForwardOnly:打开仅向前类型游标(默认类型)adOpenKeyset:打开键集类型游标adOpenDynamic:打开动态类型游标adOpenStatic:打开静态类型游标注:具体解释请参考百度结果,这里我们主要讲解应用方面的东西。

LockType:可选参数,确定数据提供者打开Recordset时应该使用的锁定(并发)类型的LockTypeEnum 值,类型如下adLockReadOnly:只读,默认值adLockPessinistic:保守式锁定,提供者完成确保成功编辑记录所需的工作,通常通过在编辑时候锁定数据源的记录来完成。

adLockOptimistic:开放式锁定,提供者试用开放式锁定,只在调用Update方法时才锁定记录。

adLockBatchOptimistic:开放式批更新,用于批更新模式Optiongs:可选参数,长整型,用于指示数据提供者如何计算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="&tagDSNName.Read&";Data Source=.\WinCC"Set oRs = CreateObject("ADODB.Recordset")oRs.open "ALARMVIEW:Select * FROM AlgViewCHT ",connm = oRs.RecordCountMsgBox "报警行数"&moRs.Closeconn.Close2.3 Command对象2.3.1 对象属性说明ActiveConnection:使打开的数据库连接与Command对象关联CommandText:可执行的命令文本,如SQL语句CommandType:指定命令类型以优化性能CommandTimeout:设置提供者等待命令行的秒数以下摘自西门子连通性文档过程值记录集结构报警过程值归档:Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = "TAG:R,'PVArchive\Tag1','0000-00-00 00:10:00.000','0000-00-00 00:00:00.000'"报警消息归档:Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = "ALARMVIEW:Select * FROM AlgViewEnu"用户归档Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = "SELECT * FROM UA#Test"关于数据集可参考《ConnectivityPackInfoSystem_zh-CHS》文档其中非常详细如果需要了解更多的方法,属性,请查阅ADODB手册上面非常的详细,本文并非专门讲解ADODB对象的文章而是重点在讲WINCC中如何使用方法,欢迎交流学习。

相关主题