大家好!
按照网上的一个例子,进行SQL数据库的读写练习,
问题:可以读取SQL 的表值,但是写入不进去
读取数据库 表 读取正常
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1
Dim Data2
Dim Data3
Dim data4
Dim data5
Dim data6
Dim data7
data7=HMIRuntime.tags("编号").read
Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=DESKTOP-RU8UM4B\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
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
'Set oRs = Nothing
data4=oRs.Fields(0).Value
data5=oRs.Fields(1).Value
data6=oRs.Fields(2).Value
'data1.write data4
Set data1=HMIRuntime.Tags("编号")
Set data2=HMIRuntime.Tags("姓名")
Set data3=HMIRuntime.Tags("年龄")
data1.Read
data1.Write data4
data2.Read
data2.Write data5
data3.Read
data3.Write data6
Set oRs = Nothing
conn.Close
Set conn = Nothing
'读取数据时,按照编号读取数据,在实际中需要修改数据库语言。运行wincc,再编号输入输出域中输入编号,点击读数据按钮,得到需要的数据
End Sub
Wincc变量值写入SQL 数据表 不正常,写入不了
Sub OnLButtonDown(Byval Item, Byval Flags, Byval x, Byval y)
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1, Data2, Data3
'读取wincc变量
Data1=HMIRuntime.tags("编号").read
Data2=HMIRuntime.tags("姓名").read
Data3=HMIRuntime.tags("年龄").read
'连接数据库
Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=.\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
'写入数据库
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
'在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags("编号").read中的变量名,数据库的名字,以及数据库的表名
End Sub
如下图片是SQL 的状态图
