听说贵地有很多大牛,小弟初来乍到,有个问题还请大牛指点指点。
我在wincc中组态了一个按钮,想单击将一些数据写到我自己建立的database中。
首先我在windows的datasourse中建立了一个DSN,选择的是SQL server,使用计算机名\WINCC,然后用Enterprise Manager在wincc下建立了一个database叫userrecord,然后创建表单logintime和logouttime。
然后在wincc用vbs组态,代码如下:
Sub OnClick(ByVal Item)
Dim objConnection
Dim objCommand
Dim strConnectionString
Dim sqlstr
Dim username
Dim logtime
Dim logday
username=HMIRuntime.Tags("@CurrentUserName").Read
logtime=HMIRuntime.Tags("Time").Read
logday=HMIRuntime.Tags("Day").Read
strConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=userrecord;Data Source=.\WinCC"
Set objConnection=CreateObject("ADODB.Connection")
objConnection.ConnectionString=strConnectionString
objConnection.Open
sqlstr="INSERT INTO userlogin VALUES(""&username&"",""&logtime&"",""&logday&"")"
Set objCommand=CreateObject("ADODB.Command")
With objCommand
objCommand.ActiveConnection=objConnection
objCommand.CommandText=sqlstr
End With
objCommand.Execute
Set objCommand=Nothing
objConnection.Close
Set objConnection=Nothing
End Sub
编译没有错误,但是就是运行后,在wincc中登陆后,点击按钮,再用Enterprise Manager查看表单,没有写入任何东西,请大牛执导。小弟万分感谢!!!
最佳答案
建议在调试的时候使用msgbox来确定程序执行到那一步不对了。VBS在程序不对的时候就退出。
给你一个我用的VBS的例子,可以正常使用,把其中的部分修改一下就可以了 。不需要建立DSN了在程序的连接字符串里指定。
Dim conn,strConn,SQL,RS
SQL="insert ****************"
''read database
Set conn = CreateObject("ADODB.Connection")
strConn="Driver={SQL Server};Server=.\WINCC;Database=databasename;Uid=;Pwd=;"
conn.ConnectionString=strConn
conn.Open
Set rs= CreateObject("ADODB.Recordset")
rs.Open sql,conn
view.text=rs.fields("fieldname")
rs.movenext
Set rs=Nothing
Set conn=Nothing
提问者对于答案的评价:
thank you very much
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc277247.html