本人搬自自己的新浪博客 这里给大家分享一下

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

一、了解ADO对象

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

1.2对ADO对象的访问使用CreateObject函数(详情请参看CreateObject函数资料)

ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象)

eg:

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:可选参数,连接打开方式

eg1:(连接数据库代码方法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

eg2:(连接数据代码方法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

eg:

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语句

eg:

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:移动到最后一条

eg:

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(以下省略参数类型讲解)

eg:

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对象

2.3.1 对象属性说明

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"

关于数据集可参考《ConnectivityPackInfoSystem_zh-CHS》文档其中非常详细

如果需要了解更多的方法,属性,请查阅ADODB手册上面非常的详细,本文并非专门讲解ADODB对象的文章而是重点在讲WINCC中如何使用方法,欢迎交流学习 。

柳叶亲月夜

QQ:275578306

wincc mysql ado_WINCC中使用ADO对象连接数据库 例子 常用属性 方法相关推荐

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

    在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库.以下以报警记录为例. 一.了解ADO对象   ...

  2. 在VC中使用ADO开发数据库应用程序

    在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...

  3. jmeter+mysql+set_Jmeter中如何进行对数据库压测(上)

    前言 表面看来,JMeter与本系列课程似乎关系不大,但实际上在后面的很多场景中起着重要作用:如何获知修改了某些代码或者设置之后系统性能是提升了还是下降了呢? 商业的压力测试工具LoadRunner确 ...

  4. vb mysql ado_VB中的ADO数据对象编程详解

    ADO是ActiveX Data Objects 的缩写,是一项新的数据库的存取技术 那天听到一位同学说他的女朋友是学新闻的可也学会了数据库,可学计算机的自己却还是不会,总觉得有点汗颜.在各网站的论坛 ...

  5. mysql 复制数据_MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库.使用以下方法,可以非常简单地实现. 假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb.步骤如 ...

  6. ADO+MFC数据库编程常用语句

    设在OnInitDialog()函数中,已经完成了初始化COM,创建ADO连接等操作,即 [cpp] view plaincopy // 初始化COM,创建ADO连接等操作 if (!AfxOleIn ...

  7. mysql 冗余字段_如何合理使用数据库冗余字段的方法

    privot多对多关系的中间表.PT5框架会自动把privot带上. 我们需要隐藏,因为我们不需要privot,而且pritvot也不在我们模型本身,他是中间数据 另外冗余字段,我们有一个表是记录图片 ...

  8. mysql进行mof提权_MySQL数据库Root权限MOF方法提权研究

    MySQL数据库Root权限MOF方法提权研究 MySQL Root权限MOF方法提权是来自国外Kingcope大牛发布的MySQL Scanner & MySQL Server for Wi ...

  9. mybatis mysql usegeneratedkeys_mybatis中useGeneratedKeys用法--插入数据库后获取主键值

    前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录 在项目中经常需要获取到插 ...

最新文章

  1. 分布式系统的事务处理(推荐)
  2. windows CMD生成文件夹树状图(tree)命令(以图形显示驱动器或路径的文件夹结构)
  3. tkinter中button按钮控件(三)
  4. 海量数据处理分析_BI
  5. Ubuntu下安装pip
  6. FPGA实现A5算法并仿真
  7. json字符串生成C#实体类的工具
  8. mysql查询三个月内的_如何在三个月内自学攻克雅思6.5分?
  9. 高效能人士的七个习惯_有史以来最具影响力管理类书籍 高效能人士的七个习惯 让你成为一名成功高效的人士...
  10. mysql text类型效率_mysql使用笔记:vachar,char,text比较
  11. 通过自定义注解排除不需要过滤URL的方法
  12. 怎么用最短时间高效而踏实地学习Linux?
  13. CTO能力知识地图正式发布
  14. IE浏览器假死解决办法
  15. 最近弄魔窗SDK踩过的坑
  16. glibc源码下载在线阅读地址
  17. SEO-老域名的选择
  18. Asp.net Ajax框架教程[教程下载]
  19. java中的消息队列
  20. Nodejs的安全学习

热门文章

  1. Sublime 插入时间日期(类似Excel中的效果)
  2. Intel Complier
  3. 交互流程图用什么软件做?
  4. kvm学习------虚拟机迁移
  5. 串口发送数据——字符串发送与十六进制发送的区别
  6. IntelliJ IDEA 快捷键查找 快速查看类中的所有方法 解释各个按键作用。
  7. BH66F2662-2
  8. 小福利,excel里面的subtotal函数的高级运用
  9. 如何直接打开aee db文件?分析重启,anr等问题
  10. 深度学习2.1二分类(Binary Classification)