发表于: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次完成功能。
请各位大虾帮忙。 感谢