早起鸟有虫吃
级别: 略有小成
精华主题: 0
发帖数量: 98 个
工控威望: 223 点
下载积分: 3360 分
在线时间: 57(小时)
注册时间: 2017-08-15
最后登录: 2024-10-23
查看早起鸟有虫吃的 主题 / 回贴
楼主  发表于: 2022-05-11 10:11
图片:

'各位好!

'咨询下使用Wincc MShflexgrid连接SQLserver数据库时,想显示数据库中所有内容,但是激活后只显示一行数据是怎么回事,实际数据库中有40条数据。

'以下部分前后有省略,代码如下:

················································
ssql1= "SELECT *  FROM  [Data].[dbo].[Recipe]"

Set oCom.ActiveConnection = Conn
oCom.CommandText = ssql1          
Set oRs1 = oCom.Execute

m = oRs1.RecordCount  


'---------------------设置控件显示--------------------'
Dim alllist
Set alllist = ScreenItems("报表")
    alllist.clear
    alllist.Cols=8            
    alllist.Rows = m+1

'---------------------将数据写入表格--------------------'        
oRs1.Movefirst
    For i = 1 To m      
              
       alllist.TextMatrix(i,0) = i    
       alllist.TextMatrix(i ,1) = oRs1.fields(0).Value
       alllist.TextMatrix(i ,2) = oRs1.Fields(1).Value
       alllist.TextMatrix(i ,3) = oRs1.Fields(2).Value
       alllist.TextMatrix(i ,4) = oRs1.Fields(3).Value
       alllist.TextMatrix(i ,5) = oRs1.Fields(4).Value
       alllist.TextMatrix(i ,6) = oRs1.Fields(5).Value    
       alllist.TextMatrix(i ,7) = oRs1.Fields(6).Value
       alllist.TextMatrix(i ,8) = oRs1.Fields(7).Value    
       oRs1.movenext
        
   Next
········································
早起鸟有虫吃
级别: 略有小成
精华主题: 0
发帖数量: 98 个
工控威望: 223 点
下载积分: 3360 分
在线时间: 57(小时)
注册时间: 2017-08-15
最后登录: 2024-10-23
查看早起鸟有虫吃的 主题 / 回贴
1楼  发表于: 2022-05-14 14:14
检查到原因了,原来是alllist.Cols=8 这里出问题了。
吾志所向
级别: 家园常客
精华主题: 0
发帖数量: 366 个
工控威望: 644 点
下载积分: 1884 分
在线时间: 161(小时)
注册时间: 2016-12-10
最后登录: 2024-11-05
查看吾志所向的 主题 / 回贴
2楼  发表于: 2023-04-12 09:37
PLC与数据库通讯有专门的智能网关的,支持PLC跟数据库之间双向通讯,
包括MySQL,SQLServer,PostgreSQL等都支持,
一个网关支持多台PLC的,相关案例: 多台PLC对接数据库.zip (2445 K) 下载次数:8