日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

WINCC中使用ADO对象连接数据库 例子 常用属性 方法 原创

發布時間:2025/3/13 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WINCC中使用ADO对象连接数据库 例子 常用属性 方法 原创 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在WINCC中連接數據庫可以使用ADO控件進行連接數據庫,但是通常都不是用的ADO控件進行連接數據庫,以下講講winccZ中使用ADO對象連接查詢數據庫。以下以報警記錄為例。
一、了解ADO對象
? ? 1.1ADO對象操作數據庫是微軟提供的一種接口。
? ? 1.2對ADO對象的訪問使用CreateObject函數(詳情請參看CreateObject函數資料)
? ? ? ADO組件的前綴是ADODB,所以訪問的時候必須為ADODB.XX(X代表對象)
? ? ? eg:
? ? ? ? ?dim conn,oRs,oCom
? ? ? ? ?Set conn = CreateObject("ADODB.Connection") ? 'Connection對象
? ? ? ? ?Set oRs = CreateObject("ADODB.Recordset") ? ? 'ADODB.Recordset對象
? ? ? ? ?Set oCom = CreateObject("ADODB.Command") ? ? ?'ADODB.Command命令對象

二、對象
? ? 2.1 Connection 對象
? ? ?2.1.1 ?open 方法
? ? ? 語法
? ? ? connection.Open ConnectionString,UserID,Password,OpengOptions
? ? ? 說明
? ? ? ConnectionString:可選參數,字符串,包含連接信息
? ? ? UserID:可選參數,字符串,包含建立連接時候用的用戶名
? ? ? Password:可選參數,字符串,包含建立連接時候用密碼
? ? ? OpenOptions:可選參數,連接打開方式
? ?eg1:(連接數據庫代碼方法1,僅連接部分代碼)
? ? ? Dim conn
? ? ? Dim tagDSNName
? ? ? Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
? ? ? Set conn = CreateObject("ADODB.Connection")
? ? ? conn.ConnectionString = "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
? ? ? conn.CursorLocation = 3
? ? ? conn.Open
? eg2:(連接數據代碼方法2,連接部分代碼)
? ? ? Dim conn
? ? ? Dim tagDSNName
? ? ? Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
? ? ? Set conn = CreateObject("ADODB.Connection")
? ? ? conn.CursorLocation = 3
? ? ? conn.Open ?"Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
?
? ? ?2.1.2 ?close方法
? ? ?connection.close
? eg:
? ? ? Dim conn
? ? ? Dim tagDSNName
? ? ? Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
? ? ? Set conn = CreateObject("ADODB.Connection")
? ? ? conn.CursorLocation = 3
? ? ? conn.Open ?"Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
? ? ?'這里寫上對數據庫查詢,修改等操作
? ? ? conn.close
? ? 2.1.3 execute方法
? ? ? 語法
? ? Cn.Execute strCommand,[IngRowsAffected[,IngOptions]]
? ? ?說明
? ? ?strCommand:可以是查詢語句、表名、存儲過程名等
? ? ?IngRowsAffected:可選參數,返回Insert、Update 、Delete查詢語句后所影響的數目
? ? ?IngOptiongs: 參數可以如下
? ? ? ?adCmdUnkown:Command類型未定,由數據源提供者去判斷Command語法
? ? ? ?AdCmdFile:Command是和對象類型相應的文件名稱
? ? ? ?adCmdStoredProc:Command是存儲過程名稱
? ? ? ?adCmdTable:Command是能產生內部SELECT*FROM TableName查詢的表名稱
? ? ? ?adCmdTableDirect:Command是能直接從表中獲取行內容的表名稱
? ? ? ?adCmdText:Command是一條SQL語句
? ?eg:
? ? ? Dim conn,oCom,oRs
? ? ? Dim tagDSNName
? ? ? Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
? ? ? Set conn = CreateObject("ADODB.Connection")
? ? ? conn.CursorLocation = 3
? ? ? conn.Open ?"Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
? ? ? Set oCom = CreateObject("ADODB.Command")
? ? ? Set oRs = CreateObject("ADODB.Recordset")
? ? ? oCom.CommandType=1
? ? ? Set oCom.ActiveConnection = conn
? ? ? oCom.CommandText ="ALARMVIEW:Select * FROM AlgViewCHT "
? ? ? Set oRs = oCom.Execute
? ? ? '以上4句還可以寫成 ?Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")

? ? ? conn.close


? 2.2 Recordset對象
? ? ?Recordset 常用屬性
? ? ? ? RecordsetCount:返回當前記錄的數目
? ? ? ? BOF:表示當前記錄位于該對象第一個記錄之前
? ? ? ? EOF:表示當前記錄位于該對象最后一個記錄之后。
? ? ? ? movefirst:移動到第一條
? ? ? ? movenext:移動到下一條
? ? ? ? movelast:移動到最后一條
? ? eg:
? ? ? Dim conn,oCom,oRs
? ? ? Dim m
? ? ? Dim tagDSNName
? ? ? Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
? ? ? Set conn = CreateObject("ADODB.Connection")
? ? ? conn.CursorLocation = 3
? ? ? conn.Open ?"Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
? ? ? Set oRs = CreateObject("ADODB.Recordset")
? ? ? Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")
? ? ? m = oRs.RecordCount
? ? ? msgbox "報警行數"&m
? ? ? conn.close
? ?2.2.1 Open方法
? ? ? 語法
? ? ? recordset.Open Source,ActiveConnection,CursorType,LockType,Options
? ? ? 說明
? ? ? Source:可選參數,變體型,計算Command對象的變量名、SQL語句、表名、存儲過程調用或持久的Recordst文件名
? ? ? ActiveConnection:可選參數,變體型,計算有效Connection對象變量名或字符串,包含ConnectionString參數
? ? ? CursorType:可選參數,用于確定數據提供者打開Recordset時應該使用游標類型,類型如下
? ? ? ? ? ? ?adOpenForwardOnly:打開僅向前類型游標(默認類型)
? ? ? ? ? ? ?adOpenKeyset:打開鍵集類型游標
? ? ? ? ? ? ?adOpenDynamic:打開動態類型游標
? ? ? ? ? ? ?adOpenStatic:打開靜態類型游標
? ? ? ? ? ? ? ?注:具體解釋請參考百度結果,這里我們主要講解應用方面的東西。
? ? ? ?LockType:可選參數,確定數據提供者打開Recordset時應該使用的鎖定(并發)類型的LockTypeEnum 值,類型如下
? ? ? ? ? ? ?adLockReadOnly:只讀,默認值
? ? ? ? ? ? ?adLockPessinistic:保守式鎖定,提供者完成確保成功編輯記錄所需的工作,通常通過在編輯時候鎖定數據源的記錄來完成。
? ? ? ? ? ? ?adLockOptimistic:開放式鎖定,提供者試用開放式鎖定,只在調用Update方法時才鎖定記錄。
? ? ? ? ? ? ?adLockBatchOptimistic:開放式批更新,用于批更新模式
? ? ? ?Optiongs:可選參數,長整型,用于指示數據提供者如何計算Source參數,或從以前保存的Recordset中恢復Recordset(以下省略參數類型講解)
? ?eg:
? ? ? ? ?Dim conn,oRs,oCom
? ? ? ? ?Dim m,i
? ? ? ? ?Dim tagDSNName
? ? ? ? ?Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
? ? ? ? ?Set conn = CreateObject("ADODB.Connection")
? ? ? ? ?conn.CursorLocation = 3
? ? ? ? ?conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
? ? ? ? ?Set oRs = CreateObject("ADODB.Recordset")
? ? ? ? ?oRs.open "ALARMVIEW:Select * FROM AlgViewCHT ",conn
? ? ? ? ?m = oRs.RecordCount
? ? ? ? ?MsgBox "報警行數"&m
? ? ? ? ?oRs.Close
? ? ? ? ?conn.Close
? ?2.3 Command對象
? ? ? 2.3.1 對象屬性說明
? ? ? ? ?ActiveConnection:使打開的數據庫連接與Command對象關聯
? ? ? ? ?CommandText:可執行的命令文本,如SQL語句
? ? ? ? ?CommandType:指定命令類型以優化性能
? ? ? ? ?CommandTimeout:設置提供者等待命令行的秒數
以下摘自西門子連通性文檔
過程值記錄集結構

報警






過程值歸檔:
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = "TAG:R,'PVArchive\Tag1','0000-00-00 00:10:00.000','0000-00-00 00:00:00.000'"
報警消息歸檔:
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = "ALARMVIEW:Select * FROM AlgViewEnu"
用戶歸檔
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = "SELECT * FROM UA#Test"
關于數據集可參考《ConnectivityPackInfoSystem_zh-CHS》文檔其中非常詳細
? 如果需要了解更多的方法,屬性,請查閱ADODB手冊上面非常的詳細,本文并非專門講解ADODB對象的文章而是重點在講WINCC中如何使用方法,歡迎交流學習 。

轉載于:https://www.cnblogs.com/young525/p/5873821.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的WINCC中使用ADO对象连接数据库 例子 常用属性 方法 原创的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。