为啥在数据库中循环实现不了,两个循环嵌套在一起就循环不了了,如果把里面的循环去掉,就可以实现了。

Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=WINCC_XIN;Data Source=.\WINCC" 
Set conn = CreateObject("ADODB.Connection")  
conn.ConnectionString = Con 
conn.CursorLocation = 3  
conn.Open  
sSql="SELECT  * FROM  剧目   WHERE  ID >'"&Data4&"'" 
Set oRs = CreateObject("ADODB.Recordset") 
Set oCom = CreateObject("ADODB.Command") 
Set oCom.ActiveConnection = conn 
oCom.CommandType = 1 
oCom.CommandText = sSql 
Set oRs = oCom.Execute 
m=oRs.RecordCount

HMIRuntime.Tags("B").Write(m)

he=Key2&"00"&Value.Read


Set NodeIndex=TV.Nodes.Add(Key1,2,he,Input)


Do While Not oRs.eof
'For i=1 To m  Step 1 
Data11=oRs.Fields(2).Value 
Data12=oRs.Fields(3).Value 

Set Data15=HMIRuntime.Tags("转换场景") 
Set Data16=HMIRuntime.Tags("转换CLAS") 

Data15.Read 
Data15.Write Data11 
Data16.Read 
Data16.Write Data12 

Data13=HMIRuntime.Tags("转换场景").Read
Data14=HMIRuntime.Tags("转换CLAS").Read


TV.nodes.remove(Data16.Read )

Set NodeIndex=TV.Nodes.Add(Key2,4,Data16.Read ,Data15.Read)

sSql="SELECT  * FROM  "&Data13&""

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

Do While Not oRs.eof 

Data21=oRs.Fields(1).Value 
Data22=oRs.Fields(2).Value 

Set Data25=HMIRuntime.Tags("要插入设备") 
Set Data26=HMIRuntime.Tags("要插入CLAS") 

Data25.Read 
Data25.Write Data21 
Data26.Read 
Data26.Write Data22 


Data23=HMIRuntime.Tags("要插入设备").Read
Data24=HMIRuntime.Tags("要插入CLAS").Read

Set NodeIndex=TV.Nodes.Add(Data14,4,Data24,Data23)


oRs.movenext 
Loop

oRs.movenext 
Loop   
'Next i
Set oRs = Nothing  
conn.Close   
Set conn = Nothing

问题补充:
哪位大侠告诉我一下,为啥里面一个  DO    WHILE........LOOP能循环,外面一个 DO    WHILE........LOOP不循环呢

最佳答案

你这段代码没有出现死循环我都感觉很惊讶,你先将结果查询到oRs中,然后第二次查询结果又覆盖了oRs,你说代码会不会出错。你要同时访问两个查询结果,你是不是得有两套oRs用于存储你查询出来的记录集啊!!!

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月12日 下午7:20
下一篇 2017年6月12日

相关推荐

  • 在STEP7中的MW866到WINCC画面上没有显示

    在STEP7中的MW866放到WINCC画面上没有显示,改成16位有符号的,画面一直显示0,改成无符号的液压缸往前走显示是****,往后走可以正常显示,把数据类型改成32位有符号和…

    SIMATIC WinCC 2020年11月1日
  • WINCC中的变量问题

    1.在WINCC里创建了几个外部变量,但地址现在是随意写的,但是创建后,想对这些变量的地址进行修改,点击属性里的选择按钮重新修改地址,却改不了,怎么办?2.在WINCC里要导入ST…

    SIMATIC WinCC 2019年6月11日
  • tp2200系统事件报警

    我这有台tp2200触摸屏一直在报“date/time could not be set,error code:13,7”,每10…

    SIMATIC WinCC 2017年8月18日
  • wincc 调用 MSHFlexGrid表格控件连接变量,怎么不实时更新变量值

    winn v7.3里调用MSHFlexGrid表格控件,连接了一些外部变量(用VBS全局脚本写的(2s周期触发)),但是运行后,变量值更改后不能实时刷新 图片说明: &n…

    2021年7月5日
  • WINCC锁定键无效

    WINCC设定了锁定各种组合键 为什么还是无效? 最佳答案 参考: http://www.ad.siemens.com.cn/service/answer/so…

    SIMATIC WinCC 2019年6月11日
  • wincc都有那些授权

    wincc中,将变量记录和报警记录数据库的内容跟mshflexgrid控件关联显示,需要另外再买授权吗?单用户项目。wincc都有哪些授权,以及什么价钱 问题补充:读取wincc的…

    SIMATIC WinCC 2021年7月5日
  • 两台电脑怎么同时运行WINCC控制一个1500?

    两台电脑怎么同时运行WINCC控制一个1500?装机是需要选择什么吗? 问题补充:请问如果要用服务器+客户机架构该怎么做呢? 最佳答案 两套单机WINCC控制一套PLC,不需要特别…

    SIMATIC WinCC 2020年11月1日
  • WINCC的变量导出及导入问题

    我要做的功能如下:定义一个外部变量,例如a.pv,对应200PLC的V存储区,一个内部变量$a,在WINCC画面中做个输入输出域,连接的变量为$a,当我修改这个输入输出域的值时,$…

    SIMATIC WinCC 2019年6月11日
  • wincc授权过期,但是点详情里面为空

    我的WINCC版本是6.0的(比较老了)。今天突然提示“wincc授权过期,”但是我点详情里面却是空的(无提示具体的哪个授权过期或者缺失)。接着我重新启动了WINCC项目,还是不行…

    SIMATIC WinCC 2018年12月7日
  • OS更新,授权和许可证

    各位师傅,我看到手册有这么一句“首先,在授权盘或存储区上备份授权与许可证密钥。更新操作系统时,现有的授权和许可证密钥将从设备上永久删除。”这句话什么意思啊?进行OS更新要做这一步吗…

    SIMATIC WinCC 2019年6月11日