天天看點

wincc mysql ado_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:設定提供者等待指令行的秒數

以下摘自西門子連通性文檔

過程值記錄集結構

wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創

報警

wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創
wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創
wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創
wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創
wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創
wincc mysql ado_WINCC中使用ADO對象連接配接資料庫 例子 常用屬性 方法 原創

過程值歸檔:

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中如何使用方法,歡迎交流學習 。