回复:压缩归档数据库中,多变量的查询问题

xiaocat

  • 帖子

    22
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2006-10-14

普通 普通 如何晋级?

发布于 2006-10-24 09:24:07

0楼

谢谢斑竹提醒,我都急糊涂了。贴出来,大家帮忙看看,谢谢啦!
Dim sPro As String
Dim sDsn As String
Dim sSer As String
Dim sCon As String
Dim sSql As String
Dim conn As Object
Dim oRs As Object
Dim oCom As Object
Dim oItem As ListItem
Dim m, n, s
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=CC_vb_06_10_18_09_33_14R;"
sSer = "Data Source=.\WinCC"
sCon = sPro + sDsn + sSer


'sSql = "TAG:R,'PVArchive\NewTag1','0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'"'单变量查询好用
'sSql = "TAG:R,'PVArchive\NewTag1','2006-10-18 5:30:30.000','2006-10-18 5:31:39.000'"'单变量查询好用
' sSql = "TAG:R,('PVArchive\NewTag1';'PVArchive\NewTag2';'PVArchive\NewTag3'),'0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'"'多变量查询不好用

'sSql = "TAG:R,(1;2;3),'0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'" '多变量查询不好用
sSql = "TAG:R,1,'0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'"
MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr

Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = sCon
conn.CursorLocation = 3
conn.Open

Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = sSql

Set oRs = oCom.Execute
m = oRs.Fields.Count
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
ListView1.View = 3
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(0).Name), 1000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 2000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 1000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(3).Name), 1000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(4).Name), 1000
'ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(5).Name), 1000
If (m > 0) Then
oRs.MoveFirst
n = 0
Do While Not oRs.EOF

n = n + 1
's = Left(CStr(oRs.Fields(1).Value), 23)

Set oItem = ListView1.ListItems.Add()
oItem.Text = FormatNumber(oRs.Fields(0).Value, 0)
oItem.SubItems(1) = Left(CStr(oRs.Fields(1).Value), 23)
oItem.SubItems(2) = Hex(oRs.Fields(2).Value)
oItem.SubItems(3) = Hex(oRs.Fields(3).Value)
oItem.SubItems(4) = Hex(oRs.Fields(4).Value)
'oItem.SubItems(5) = Hex(oRs.Fields(5).Value)
If (n > 1000) Then Exit Do
oRs.MoveNext
Loop
oRs.Close
Else
End If
Set oRs = Nothing
conn.Close
Set conn = Nothing
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32567条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。