Option Explicit
Function action
'定义变量
Dim database,server,uid,pwd
Dim strcn,cn
Dim is_sql
Dim datatime,login,lit8751
'获取系统当前时间
datetime=Now
'获取当前wincc用户信息
Set login=HMIRuntime.Tags("@currentusername")
login.Read
'获取变量
Set lit8751=HMIRuntime.Tags("lit8751")
lit8751.Read
'获取服务器名称
Set server=HMIRuntime.Tags("@servername")
server.Read
server=server.Value & "\wincc"
'填写要连接的数据库信息
database="xlpdb"
uid="sinomem"
pwd="6778100"
'得出数据库完整的驱动信息
strcn="provider=sqloledb.1;driver=sql server; server="& server &";database="& database &";server="& server &" uid="& uid &";pwd="& pwd &"
'建立ADO连接
Set cn=creatobject("adobd.connection")
cn.connectionstring=strcn
cn.open
'把变量值写入数据表中
is_sql="insert into jytable(datetime,login.lit8751)values('"&datetime&"','"&login.value&"','"&lit8751.value&"')"
cn.execute Is_sql
cn.close
End Function
最佳答案
发现两个server="& server &,而后面那个与uid没有;分隔符。
另外is_sql好像有类似的问题,比如yjtable与后面的括号之间应该有空格,values应该与前后括号之间有空格。
is_sql的login.lit8751应该是login,lit8751吧(逗号)。
最后Driver的习惯性写法是:Driver={SQL Server};
提问者对于答案的评价:
xiexie
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275158.html