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,直到重新定位當前記錄爲止。