求助!在WINCC中用VBS脚本向SQL数据库循环写数据 点击:1036 | 回复:1



蒙子

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 14回
  • 年度积分:0
  • 历史总积分:111
  • 注册:2006年5月08日
发表于:2008-11-07 17:54:35
楼主
1,在WINCC中用VBS脚本向SQL数据库循环写数据
按钮脚本如下
Dim DM
Dim SDZL,SJZL
Dim database,server,uid,pwd
Dim stren,cn,is_sql

database="PL"
server="PC\WINCC"
uid="sa"
pwd="123"

stren="provider = SQLOLEDB.1;DRIVER = SQL SERVER;SERVER="&SERVER&_
";DATABASE="&DATABASE&";UID="&uid&";pwd="&pwd

Set cn = CreateObject("adodb.connection")
cn.connectionstring = stren
cn.open

Dim i
For i=0 To 12
Dim field1,field2,field3

field1="T1_" & i
field2="T2_" & i
field3="T3_" & i

Set DM=HMIRuntime.Tags ("field1")
DM.READ
Set SDZL=HMIRuntime.Tags ("field2")
SDZL.READ
Set SJZL=HMIRuntime.Tags ("field3")
SJZL.READ

is_sql="insert into ONE(DM,SDZL,SJZL) values("&DM.value&","&SDZL.value&","&SJZL.value&")"

cn.execute(is_sql)
Next
cn.close

数据库为PL,表名为ONE,其中DM字段为VARCHAR 50,SDZL和SJZL为数字型。
其中WINCC中有T1_1到T1_12,T2_1到T2_12,T3_1和T3_12共计36个变量,我想用FOR NEXT来循环执行SQL的INSETT语句。不知道我上面写的代码对否?
我在WINCC中用一个按钮来执行操作。
每次我运行的时候,都提示如下:

Line : 1
Error: Line 1: incorrect syntax near ‘,’

是第一行出现错误,可什么错误呢?

我试验把循环语句去掉,只单独读出WINCC中的T1_1,T2_1,T3_1三个变量,然后写入数据库的ONE表中,成功。

我做这个循环的目的就是不想把36个变量挨个列出来,用循环执行12次完成功能。

请各位大虾帮忙。 感谢



fubing

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 300回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-12-17 22:48:20
1楼
在循环前i先赋值,并且你也不应该从0开始循环吧。

热门招聘
相关主题

官方公众号

智造工程师