wincc与SQL数据库通讯(读写数据)

wincc与SQL数据库通讯

需求

  1. 通过画面按钮,将数据写入指定的数据库
  2. 通过画面按钮,根据ID,将数据库内的数据读取到上位中

准备工作

变量

在内部变量中新建如下变量
在这里插入图片描述

画面组态

在这里插入图片描述

代码

写入数据

Dim sSql
Dim sCom
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim data1,data2
'读取WINCC变量
data1=HMIRuntime.Tags ("number").Read 
data2=HMIRuntime.Tags ("age").Read 
'连接数据库,此处为数据库连接的标准语法结构。
Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;Persist Security Info=False; Initial Catalog=wincc_sql'(要写入的数据库名称);
Data Source=DESKTOP-E0MD3AM\WINCC"'(服务器名称)
Set conn=CreateObject("ADODB.Connection")
conn.ConnectionString= Con
conn.CursorLocation=3
conn.Open
Msgbox "。。。。。"'(如果和数据库通讯成功,弹出信息)
'
sSql="insert into info_test VALUES ('"&data1&"','"&data2&"');"
'下面的部分语句,也是数据库的标准语法,对数据库进行操作时,所需要的属性和方法。
'Initial Catalog= 后面为数据库名称,insert into 后面为数据表名称,
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

读取数据

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 ("rid").Read

'连接数据库
Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;Persist Security Info=False; Initial Catalog=wincc_sql;Data Source=DESKTOP-E0MD3AM\WINCC"
Set conn=CreateObject("ADODB.Connection")
conn.ConnectionString= Con
conn.CursorLocation=3
conn.Open
Msgbox "。。。。。"
'读取数据库
'下面语句为查询数据库SELECT语句
sSql="SELECT * FROM data_read WHERE id = '"&data7&"';"
'FROM 后面为读取的数据库名称
'标准的数据库操作属性和方法
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
Set data1=HMIRuntime.Tags ("rnumber")
Set data2=HMIRuntime.Tags ("rage")


'下面为将data4-5值写入data1-2中。
data1.read
data1.write data4
data2.read
data2.write data5
'数据库操作完的结束语句,为标准格式语句。
Set oRs=Nothing
conn.Close
Set conn=Nothing
  • 8
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yue008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值