wincc与数据库连接问题

在数据库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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午12:15
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论