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