一、在数据库中建立数据库文件,文件名为“读写数据库”,在数据库中建立新的表,命名为“个人信息”分别建立编号、姓名、年龄。
二、数据库中建立表后,在wincc中建立与数据库中类型相同的变量,变量类型相同在读写数据时很重要。在图形编辑器中新建画面,并在画面中增加三个输入输出域,并连接变量。
三、添加两个按钮控件,分别命名为写数据、读数据。
1.在写数据中写入如下脚本
Dim sSql
Dim sCom
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim data1,data2,data3
'读取WINCC变量
data1=HMIRuntime.Tags ("number").Read
data2=HMIRuntime.Tags ("name").Read
data3=HMIRuntime.Tags ("age").Read
'连接数据库,此处为数据库连接的标准语法结构。
Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;Persist Security Info=False; Initial Catalog=testdata;Data Source=.\WINCC"
Set conn=CreateObject("ADODB.Connection")
conn.ConnectionString= Con
conn.CursorLocation=3
conn.Open
Msgbox "。。。。。"
'写入数据库,将number/name/age变量的值写到建好的数据库的列中,注意,数据的格式一定要统一。
'在HMI中组态完成后,运行写入几组数据。打开建好的数据库-->数据表-->右击-->选择前1000行即可看到所输入的数据,此时已经储存。
sSql="insert into 个人信息 VALUES ('"&data1&"','"&data2&"','"&data3&"');"
'下面的部分语句,也是数据库的标准语法,对数据库进行操作时,所需要的属性和方法。
Set oRs=CreateObject("ADODB.Recordset")
Set oCom=CreateObject("ADODB.Command")
Set oCom.ActiveConnection=conn
oCom.CommandType=1
oCom.CommandText=sSql
Set oRs=oCom.Execute
Set oRs=Nothing
conn.Close
Set conn=Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
2.读取按钮的脚本
Dim sSql
Dim sCom
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim data1,data2,data3
Dim data4,data5,data6,data7
'下面的data7变量为在HMI所输入的编号查询变量,结合下面的SELECT语法,将输入与表中编号比较,等于则取出该行值。
data7=HMIRuntime.Tags ("r_data").Read
'连接数据库
Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;Persist Security Info=False; Initial Catalog=testdata;Data Source=.\WINCC"
Set conn=CreateObject("ADODB.Connection")
conn.ConnectionString= Con
conn.CursorLocation=3
conn.Open
Msgbox "。。。。。"
'读取数据库
'下面语句为查询数据库SELECT语句
sSql="SELECT * FROM 个人信息 WHERE 编号 = '"&data7&"';"
'标准的数据库操作属性和方法
Set oRs=CreateObject("ADODB.Recordset")
Set oCom=CreateObject("ADODB.Command")
Set oCom.ActiveConnection=conn
oCom.CommandType=1
oCom.CommandText=sSql
Set oRs=oCom.Execute
'此处为赋表中的列0-2值到变量data4-6
data4=oRs.Fields(0).Value
data5=oRs.Fields(1).Value
data6=oRs.Fields(2).Value
Set data1=HMIRuntime.Tags ("rnumber")
Set data2=HMIRuntime.Tags ("rname")
Set data3=HMIRuntime.Tags ("rage")
'下面为将data4-6值写入data1-3中。
data1.read
data1.write data4
data2.read
data2.write data5
data3.read
data3.write data6
'数据库操作完的结束语句,为标准格式语句。
Set oRs=Nothing
conn.Close
Set conn=Nothing
------------------------------------------------------------------------------------------------------------------------------------------------------------
总结:
存在如下不足:
1.数据库的知识不足,具体的操作语句用法不熟悉。
2.VB的语句能看懂并理解,但是细节的更深层次的理解没有。
顺利的完成了该程序的测试,在以后的工作中,如果进行一些数据库数据的分析,掌握了数据库的查询语法知识,可以在WINCC内
实现一些数据的展示。而且数据库的连接也操作语法也可以进行套用到别的工程项目中。原理大致类似。
附测试结果: