在数据库2008新建了一个一个ss123数据库,数据库的表名为1,。上位机wincc新建本地变量Data1 、 Data2 、Data3 、data4、data5、data6,想将数据库中的数据与本地变量连接起来,实现数据传递,由两个按钮来实现。从数据库中读数据代码如下:
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1
Dim Data2
Dim Data3
Dim data4
Dim data5
Dim data6
con="Provider=SQLOLEDB.1;Persist Security Info=True;Initial Catalog=ss123;User ID=sb;Password=password;Data Source=.\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
sSql="SELECT * FROM [1] WHERE 编号=1"
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
给数据库中写数据代码如下:
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1
Dim Data2
Dim Data3
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=ss123;Data Source=.\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
sSql="insert into [1] 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
在画面做了几个变量显示框,一致没有显示。求大神指点,我的邮箱806258099@qq.com
钻石用户推荐最佳答案
两个问题。
1、第一段代码中
Set oRs = oCom.Execute
Set oRs = Nothing
第一句刚刚查询,第二句就将查询的记录集给清掉了。后面哪会有数据呢?
2、第二段代码,插入操作时,不需要命令集和记录集。
conn.Open
sSql="insert into [1] VALUES(''" & Data1 & "'',''" & Data2&"'',''"&Data3&"'');"
conn.Execute sSq
就行了。
另外,Insert语句中,字段类型是字符串的,在 VALUES中需要加单引号,如编号,姓名;而年龄是数字型(比如整型),在赋值时,就不能加引号。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc362264.html