wincc用vb脚本写自定义的sql数据库问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 17:23:26
我想用一个按钮的动作脚本连接sql,然后用全局脚本周期性写变量值到sql,然后用另一个按钮动作脚本断开sql连接。这样能用vb脚本实现吗?
因为连接sql的脚本里面有个对象objConnection,如下代码:
strConnectionString ="Driver={SQL Server};Server=.\WINCC;uid=;pass=;database=guowincc"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.open

而insert语句需要用到objConnection这个对象:
strSql = "insert into testwincc values('NewTag1_inter','"& nowTime & "',"

& lngValue & ");"
Set objCommand = CreateObject("ADODB.Command")
with objCommand
.ActiveConnection = objConnection
.CommandText = strSql
End With
objCommand.Execute

然后断开连接也要用到objConnection对象:
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing

但是全局脚本就没有参数传递,这要怎么办呢?
我是想在用全局脚本写sql的时候不要它老是连接——写——断开,连接——写——断开....
我只想用这样的顺序:连接——写..

WinCC的VBS虽可以生命Public变量,但作用域仅限于本画面。
如果你的WinCC版本>=V6.0 SP3,则可以使用Dataset对象,该对象可以在不同的VBS脚本中进行访问。下面是个简单的例子:
1、连接
Dim objConnection,strConnectionString
strConnectionString ="Driver={SQL Server};Server=.\WINCC;uid=;pass=;database=guowincc"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.open

HMIRuntime.DataSet.Add "objConnection",objConnection

2、全局动作中引用
Dim objConnection
objConnection= HMIRuntime.DataSet("objConnection").Value
with objCommand
.ActiveConnection = objConnection
xxxxxxxx

3、关闭连接:
Dim objConnection
objConnection= HMIRuntime.DataSet("objConnection").Value
objConnection.Close
Set objConnection = Nothing