wincc用vbs访问外部数据库问题

在wincc6里面用vbs编了一段代码,访问一个外部的sql数据库,根据输入的数字去查询,返回结果显示到msflexgird控件中去。
 发现一个怪现象,用recordset的fields的count属性无法获取实际的记录数(固定为4)!!!
 而后面的代码却能够把该记录集中的所有记录显示到msflexgrid控件中去,这说明前面的recordset对象是没问题的啊。不得已写了一段很傻的代码来获取记录数:
 If Not objrs.eof Then
    objRs.movefirst
    RecordNum=0
    Do Until objRs.eof
       RecordNum=RecordNum+1
       objRs.movenext
    Loop
 Else
    RecordNum=0
 End If
 本来应该一句话就可以了哈:
 RecordNum=objRs.Fields.Count
 发现上面这句话返回值不管返回几条记录,始终为4,纳闷啊。退出wincc重新运行工程也是一样。
 求高人指教!!!
 

问题补充:
不好意思,弄错了。
     不过昨天我也试过了recordset的recordcount属性,返回为-1,查了下资料,说为-1 的话就说明不能得到实际记录数。
    ------------------------
    又查了下,得到一个ms正确的的解答:
    通过Connection的Execute方法执行的查询语句不能返回Recordcount 
    通过Recordset的Open方法执行的查询语句可以返回Recordcount
    ------------------
   晕,白兴奋了。用recoredset的open方法执行select后,recordcount还是返回-1,我无语了,继续查。
  ---------------
  有人说是游标问题,有道理。
 ----------------
 终于搞定了,就是游标问题。

最佳答案

recordset的fields的count返回的是字段的数量,当然是固定的。获得记录数量用oRs.RecordCount即可。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc274998.html

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

相关推荐