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

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日

相关推荐

  • wincc7.0 做变量前缀能否用中文字符

    wincc7.0 做变量前缀能否用中文字符 最佳答案 不能用中文字符 提问者对于答案的评价:谢谢

    SIMATIC WinCC 2021年7月5日
  • WinCC/Web Navigator软件下载

    请教各位大虾,我想通过网路客户机监视服务器的WINCC项目,听说是不是需要在客户机上安装WinCC/Web Navigator软件,WinCC/Web Navi…

    SIMATIC WinCC 2019年6月11日
  • wincc报警

    1.现在我是两个PLC的CPU,分别连接到两台微机,创建的WINCC项目是单用户的,有什么捷径可以转为多用户型项目. 2.通过硬拷贝的单用户项目,报警提示无连接,怎么才可…

    SIMATIC WinCC 2019年6月11日
  • C代吗如何加入

    我是初学者,想知道C代吗如何加入.我做了一个登陆按钮,程序是#progma code("UseAdmin.dll")  #incl…

    SIMATIC WinCC 2019年6月11日
  • 初学WinCC该怎么做?

    WinCC入门示例项目 课程编号:V1129 本视频是一个WinCC项目的入门示例,详…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列表 初学WinCC…

    2021年7月5日
  • wincc配置冗余,复制项目总是被删除

    冗余配置时,复制项目时总是被删除,两台服务器用户名密码一样,也在一个组里, 钻石用户推荐最佳答案 参考文档,如何构建一个WinCC冗余项目https://support.indus…

    SIMATIC WinCC 2021年7月5日
  • C# 如何通过OPC 获取wincc 的数据

    各位大神,我们厂里现在用了wincc 监控,领导要求把数据要传输到一套c#开发的软件中,wincc和三方软件分别部署在不同的服务器上的,初次接触这个wincc和opc,希…

    SIMATIC WinCC 2021年7月5日
  • 关于mp277的问题

    各位大侠 小弟最近做了一个屏的程序 可是编译不过去 总是提示“系统函数的引用参数无效” 可是点击这句话也不会跳转到故障处 不知道是…

    SIMATIC WinCC 2019年6月11日
  • 变量前缀和二次确认画面

    各位好!现在我在使用结构变量和脚本变更变量前缀来改变画面模板的变量前缀名方面没有问题了,但是我们通常对设备做操作的时候还要设置二次确认操作画面。我想实现的功能是:点击设备->…

    SIMATIC WinCC 2019年6月10日
  • 急!wincc7.3的opcUA和opcDA什么区别?怎么创建opc服务器?

    我的wincc7.3,需要创建opc服务器,我用wincc调用第三方的exe执行程序,wincc通过opc与exe程序进行通讯,让exe程序可以读写PLC的变量,不知道怎么弄? 最…

    SIMATIC WinCC 2021年7月5日