wincc和数据库通信的最简单方法是使用VB-Script,主要流程如下:
连接配置—>命令配置—>记录集配置—>管理从数据库返回的数据
对于连接配置需要包含以下参数:

参数描述
数据提供商Provider
数据服务器服务器名称
初始目录要连接的数据库
认证数据库的账户信息

连接配置

常见wincc通信的数据库有SQL Server和Access数据库。
对应连接配置字符串代码模版:

'Sql Server数据库连接配置
con="Provider=SQLOLEDB.1;Data Source=MAWINWINCC;InitialCatalog=SQL_WINCC;Trusted_connection=yes";
'“Trusted_connection”表示连接将通过Windows身份验证完成
'对于SQL身份验证,连接字符串将如下所示:
con="Provider=SQLOLEDB.1;Password=sql_user_Password;Persist Security Info=True;User ID=sql_user;Initial Catalog=SQL_WINCC;
Data Source=MAWIN\WINCC"

命令配置

conn.ConnectionString=con  '链接字符串
conn.Cursorlocation=3      '相当于是adUseClient枚举值,表示用在客户端中
conn.open					'打开链接

记录集配置

ssql="select * from master.dbo.sysdatabases where [name] = '"&DataBaseName&"'"


Set ocom.activeconnection=conn   '配置Command对象,使打开的数据库连接与Command对象关联
ocom.CommandType=1               '可执行的命令文本,如SQL语句
ocom.CommandText=ssql			'关联sql语句
Set ors=ocom.Execute			 '执行command命令

管理从数据库返回的数据

If ors.recordcount>0 Then
   Msgbox DataBaseName&"已经存在,无需创建"
Else
ssql="Create Database "&DataBaseName
ocom.CommandText=ssql
Set ors=ocom.Execute
Msgbox DataBaseName&"创建完毕"

详细代码如下,脚本主要显示的功能是在SQL Server数据库创建数据库。

'与 数据库 通信的最简单方法是使用VB-Script,它基本上需要4个步骤。
'
'连接配置
'命令配置
'记录集配置
'管理从数据库返回的数据
'
'连接配置基本上具有以下参数:
'
'数据提供商 Provider
'数据服务器(服务器名称)
'初始目录(要连接的数据库)
'认证
'
'Provider=SQLOLEDB.1;Data Source=MAWINWINCC;InitialCatalog=SQL_WINCC;Trusted_connection=yes;
'
'“Trusted_connection”表示连接将通过Windows身份验证完成
'
'对于SQL身份验证,连接字符串将如下所示:
'Provider=SQLOLEDB.1;Password=sql_user_Password;Persist Security Info=True;User ID=sql_user;Initial Catalog=SQL_WINCC;Data Source=MAWIN\WINCC
Dim con,conn,ors,ocom,ssqql
'con:建立字符串,conn:建立对象,ors:建立记录对象,ocom:建立命令对象,ssql:sql命令语句
Dim PCName,DataBaseName
PCName=HMIRuntime.Tags("@LocalMachineName").Read ' 读取计算机名
DataBaseName=HMIRuntime.Tags("DataName01").Read  '读取查询数据库的名称
Set conn = CreateObject("ADODB.Connection") '建立对象
Set ors = CreateObject("ADODB.RecordSet")  '建立记录对象
Set ocom = CreateObject("ADODB.Command")   '建立命令对象

con="Provider = SQLOLEDB.1;password = 12345678;user id = sa;Initial Catalog =master;Data Source = " & PCName & "\WINCC" ' 建立字符串

conn.ConnectionString=con  '链接字符串
conn.Cursorlocation=3      '相当于是adUseClient枚举值,表示用在客户端中
conn.open					'打开链接
Msgbox DataBaseName
ssql="select * from master.dbo.sysdatabases where [name] = '"&DataBaseName&"'"


Set ocom.activeconnection=conn   '配置Command对象,使打开的数据库连接与Command对象关联
ocom.CommandType=1               '可执行的命令文本,如SQL语句
ocom.CommandText=ssql			'关联sql语句
Set ors=ocom.Execute			 '执行command命令

If ors.recordcount>0 Then
   Msgbox DataBaseName&"已经存在,无需创建"
Else
ssql="Create Database "&DataBaseName
ocom.CommandText=ssql
Set ors=ocom.Execute
Msgbox DataBaseName&"创建完毕"
End If
Set ors=Nothing
conn.close
Set conn=Nothing

更多推荐

wincc与SQL Server数据库通讯的方法介绍