欢迎大家来到IT世界,在知识的湖畔探索吧!
在WINCC中连接数据库可以使用ADO控件进行连接数据库。
一、ADO对象
1.1 概念:
ADO对象操作数据库是微软提供的一种接口。
1.2 方法:
对ADO对象的访问使用CreateObject函数
ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象)
1.3 实例:
dim conn,oRs,oCom
Set conn = CreateObject(“ADODB.Connection”) ‘Connection对象
Set oRs = CreateObject(“ADODB.Recordset”) ‘ADODB.Recordset对象
Set oCom = CreateObject(“ADODB.Command”) ‘ADODB.Command命令对象
二、对象
2.1 Connection 对象
2.1.1 open 方法
connection.Open ConnectionString,UserID,Password,OpengOptions
参数:
ConnectionString:可选参数,字符串,包含连接信息;
UserID:可选参数,字符串,包含建立连接时候用的用户名;
Password:可选参数,字符串,包含建立连接时候用密码;
OpenOptions:可选参数,连接打开方式;
实例1:
Dim conn
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags(“@DatasourceNameRT”)
Set conn = CreateObject(“ADODB.Connection”)
conn.ConnectionString = “Provider=WinCCOLEDBProvider.1;Catalog=”&tagDSNName.Read&”;Data Source=.\WinCC”
conn.CursorLocation = 3
conn.Open
实例2:
Dim conn
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags(“@DatasourceNameRT”)
Set conn = CreateObject(“ADODB.Connection”)
conn.CursorLocation = 3
conn.Open “Provider=WinCCOLEDBProvider.1;Catalog=”&tagDSNName.Read&”;Data Source=.\WinCC”
2.1.2 close方法
connection.close
实例1:
Dim conn
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags(“@DatasourceNameRT”)
Set conn = CreateObject(“ADODB.Connection”)
conn.CursorLocation = 3
conn.Open “Provider=WinCCOLEDBProvider.1;Catalog=”&tagDSNName.Read&”;Data Source=.\WinCC” ‘这里写上对数据库查询,修改等操作conn.close
2.1.3 execute方法
Cn.Execute strCommand,[IngRowsAffected[,IngOptions]]
参数:
strCommand:可以是查询语句、表名、存储过程名等;
IngRowsAffected:可选参数,返回Insert、Update 、Delete查询语句后所影响的数目;
IngOptiongs: 参数可以如下;
adCmdUnkown:Command类型未定,由数据源提供者去判断Command语法;
AdCmdFile:Command是和对象类型相应的文件名称;
adCmdStoredProc:Command是存储过程名称;
adCmdTable:Command是能产生内部SELECT*FROM TableName查询的表名称;
adCmdTableDirect:Command是能直接从表中获取行内容的表名称;
adCmdText:Command是一条SQL语句;
实例:
Dim conn,oCom,oRs
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags(“@DatasourceNameRT”)
Set conn = CreateObject(“ADODB.Connection”)
conn.CursorLocation = 3
conn.Open “Provider=WinCCOLEDBProvider.1;Catalog=”&tagDSNName.Read&”;Data Source=.\WinCC”
Set oCom = CreateObject(“ADODB.Command”)
Set oRs = CreateObject(“ADODB.Recordset”)
oCom.CommandType=1
Set oCom.ActiveConnection = conn
oCom.CommandText =”ALARMVIEW:Select * FROM AlgViewCHT “
Set oRs = oCom.Execute
‘以上4句还可以写成 Set oRs=conn.Execute(“ALARMVIEW:Select * FROM AlgViewCHT “)
conn.close
2.2 Recordset对象
基本属性:
Recordset 常用属性
RecordsetCount:返回当前记录的数目
BOF:表示当前记录位于该对象第一个记录之前
EOF:表示当前记录位于该对象最后一个记录之后。
movefirst:移动到第一条
movenext:移动到下一条
movelast:移动到最后一条
实例:
Dim conn,oCom,oRs
Dim m
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags(“@DatasourceNameRT”)
Set conn = CreateObject(“ADODB.Connection”)
conn.CursorLocation = 3
conn.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.RecordCount
msgbox “报警行数”&m
conn.close
2.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(以下省略参数类型讲解);
实例:
Dim conn,oRs,oCom
Dim m,i
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags(“@DatasourceNameRT”)
Set conn = CreateObject(“ADODB.Connection”)
conn.CursorLocation = 3
conn.Open “Provider=WinCCOLEDBProvider.1;Catalog=”&tagDSNName.Read&”;Data Source=.\WinCC”
Set oRs = CreateObject(“ADODB.Recordset”)
oRs.open “ALARMVIEW:Select * FROM AlgViewCHT “,conn
m = oRs.RecordCount
MsgBox “报警行数”&m
oRs.Close
conn.Close
2.3 Command对象
基本属性:
ActiveConnection:使打开的数据库连接与Command对象关联;
CommandText:可执行的命令文本,如SQL语句;
CommandType:指定命令类型以优化性能;
CommandTimeout:设置提供者等待命令行的秒数;
过程实例:
过程值归档:
Set oRs = CreateObject(“ADODB.Recordset”)
Set oCom = CreateObject(“ADODB.Command”)
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = “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(“ADODB.Command”)
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = “ALARMVIEW:Select * FROM AlgViewEnu”
用户归档
Set oRs = CreateObject(“ADODB.Recordset”)
Set oCom = CreateObject(“ADODB.Command”)
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = “SELECT * FROM UA#Test”
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/17952.html