Sub OnClick(ByVal Item)
Dim sPro
Dim sDsn
Dim sSer
Dim sCon
Dim sSql
Dim conn
Dim oRs
Dim oCom
Dim oItem
Dim m,n,s
sPro="Provider=WinCCOLEDBProvider.1;"
sDsn="Catalog=CC_DemoV6_08_05_19_10_18_29R;"
sSer="Data Source=.\WinCC"
sCon=sPro+sDsn+sSer
sSql="TAG:R,''PVArchive1\Tag1'',''0000-00-00 00:10:00.000'',''0000-00-00 00:00:00.000''"
''sSql="TAG:R,1,''0000-00-00 00:10: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.RecordCount
ListView1.ColumHeaders.Clear
ListView1.ColumHeaders.Add,,CStr(oRs.Fields(1).name),140
ListView1.ColumHeaders.Add,,CStr(oRs.Fields(2).name),70
ListView1.ColumHeaders.Add,,CStr(oRs.Fields(3).name),70
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=Left(CStr(oRs.Fields(1).Value),23)
oItem.SubItems(1)=FormatNumber(oRs.Fields(2).Value,4)
oItem.SubItems(2)=Hex(oRs.Fields(3).Value)
If(n>1000) Then Exit Do
oRs.MoveNext
Loop
oRs.Close
Else
End If
Set oRs=Nothing
conn.Close
Set conn=Nothing
End Sub
这是深入浅出的的一段OLE-DB访问数据库的脚本程序(部分修改),可是为什么我在测试时,在点击按钮后只弹出对话框,而我的Listview无数据显示,时间部分我试过了用绝对时间根据现系统时间:2008-07-02 09-12-50 2008-07-02 10-12-50,可还是不行啊,点击对话框后还是无显示
问题补充:
sSql=" TAG:R,''PVArchive1\Tag1'',''0000-00-00 00:10:00.000'',''0000-00-00 00:00:00.000'' "这个没问题啊,双引号可能是我复制时造成的
最佳答案
VBS脚本问题最多,他边解释边执行,有时候程序执行1半就没有下文了。要是脚本里边有汉字更是老火。建议你设置几个测试点。比如
我就是人为写一些类似MsgBox "1",,"Message"的弹出消息放在程序中 这样就可以看到程序到底执行到什么地方出了问题。一点一点的排除 最后就会锁定到某一句 呵呵。
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276856.html