访问数据库

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐