发布于 2010-04-13 19:49:59
1楼
可以,我正在做。贴出相关代码
Dim SQLStr
Dim DBSourceObj
Set DBSourceObj = HMIRuntime.Tags("@DatasourceNameRT")
Dim ConnStr
ConnStr = "Provider=WinCCOLEDBProvider.1;Catalog=" + DBSourceObj.Read + ";Data Source=.\WinCC"
'绝对时间
' SQLStr = "Tag:R,('ProcessValueArchive\pressure';'ProcessValueArchive\level'),'2010-4-12 16:00:00','2010-4-13 15:59:59'"
‘相对时间
SQLStr = "Tag:R,
('ProcessValueArchive\pressure';'ProcessValueArchive\level'),'0000-00-00 00:05:00.000','0000-00-00 00:00:00.000'"
Dim RecordsetObj
Set RecordsetObj = CreateObject("ADODB.Recordset")
Dim connobj,cmdobj
ConnObj.ConnectionString = ConnStr
ConnObj.CursorLocation = 3
ConnObj.Open
Set CmdObj = CreateObject("ADODB.Command")
CmdObj.ActiveConnection = ConnObj
RecordsetObj.CursorLocation = 3
Dim RecNum
CmdObj.CommandText = SQLStr
'查询数据库
Set RecordsetObj = CmdObj.Execute
RecNum = RecordsetObj.RecordCount
If RecNum>0 Then
RecordsetObj.MoveFirst
Do While Not RecordsetObj.eof
'添加数据处理代码
Loop
End If
RecordsetObj.Close()
Set RecordsetObj = Nothing
Set CmdObj = Nothing
ConnObj.Close
Set ConnObj = Nothing
我遇到的问题:
1.返回的时间是格林威治时间;
2.同时查询多个归档变量,是按变量返回数据集的。上面代码中先先是所有符合条件的压力值,然后是符合条件的液位值。返回的数据集中数据内容大概是第2字段是时间、第3字段是归档值、第4字段是质量代码。