WINCC -VBScript脚本操作-SqlServer
Function WinCCDataSQL(strSQL)
Dim wms_ConnStr,objConnection
'打开数据库
wms_ConnStr = "driver=sqL server;SERVER=127.0.0.1\WINCC;DATABASE=JSHRDB;UID=sa;PWD=sa"' 登陆字
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = wms_ConnStr
objConnection.Open
Dim lngCount '查到的记录数
Dim lngValue '查询到的结果
'操作数据库
Dim objRecordset,objCommand
Set objRecordset = CreateObject("ADODB.Recordset")
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = strSQL 'sql 语句
Set objRecordset = objCommand.Execute
If objRecordset.EOF and objRecordset.BOF Then
MsgBox "没有信息"
Exit Function
End If
lngCount = objRecordset.Fields.Count
'如果查询到的记录数大于0
If (lngCount>0) Then
'Recordset 对象mvoefirst
'把记录指针移动到第一条记录
' objRecordset.mvoefirst
lngValue = objRecordset.Fields(0).Value
'HMIRuntime.Tags("dbValue").Write lngValue
MsgBox "数据库值:"&lngValue
Else
'HMIRuntime.Trace "Selection returned no fields" & vbNewLine
MsgBox "数据库值:"&lngValue
End If
Set objCommand = Nothing
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
End Function
Call WinCCDataSQL("select CodeUser,CodeName,Password from tb_user WHERE CodeUser = '00001' AND Password = '123456'")
'BOF指示当前记录的位置在 Recordset 对象的第一个记录之前。
'EOF指示当前记录的位置在 Recordset 对象的最后一个记录之后。
'使用 BOF 和 EOF 属性确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。
'如果当前记录位于第一个记录之前,则 BOF 属性返回 True ()。
'如果当前记录是第一个记录或位于第一个记录之后,则返回 False。
'如果当前记录位于最后一个记录之后,则 EOF 属性返回 True。
'如果当前记录是最后一个记录或位于最后一个记录之前,则返回False。
'如果 BOF 或 EOF 属性为 True,则没有当前记录。
'如果打开不包含记录的 Recordset 对象,则 BOF 和 EOF 属性被设置为 True,Recordset 对象的 RecordCount 属性设置为零。
'当打开至少包含一个记录的 Recordset 对象时,第一个记录是当前记录,并且 BOF 和 EOF 属性均为 False。
'如果删除 Recordset 对象中保留的最后一个记录,BOF 和 EOF 属性将保持 False,直到重新定位当前记录为止。