如何从资料库中读取资料并在WinCC的画面中显示

请教各位专家,我需要从SQL的PW_USER 的Table 中根据NAME栏的数值取出GRPID的数值,并根据GRPID的值给一个内部变量赋值:具体一点就是,在PW_USER Table中,有一栏的信息是Name对应的数值时“a”,GRPID对应的数值是 1000,当我在WinCC中用用户名“a”登陆时,可以取得GRPID 的值,这个值可以通过一个内部变量在WinCC中显示出来,不知道该如何下手,谢谢!

最佳答案

GRPID仅仅是用户所在组代表的ID,意义不是很大,一般去用户组比较有意义。
 这是我以前用的VBS脚本,稍微改了一下。
 Dim oConn,oRs,strConn
 ‘********************创建COM对象************************
 Set oConn=CreateObject("ADODB.Connection")
 Set oRs=CreateObject("ADODB.RecordSet")
 ‘*********************读取DSN并连接数据库************************
 Dim DSN
 DSN = HMIRuntime.Tags("@DatasourceNameRT").Read
 If Len(DSN)<0 Then Exit Sub
 DSN = Mid(DSN,1,Len(DSN)-1)
 ‘HMIRuntime.Trace "DSN : " & DSN & vbCrLf
 strConn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=.\WINCC;Initial Catalog=’" & DSN & "’;"
 HMIRuntime.Trace strConn & vbCrLf
 oConn.Open strConn
 ‘*********************获取用户所在用户组名************************
 Dim strSQL
 strSQL="SELECT NAME FROM PW_USER WHERE ID IN (SELECT GRPID FROM PW_USER WHERE NAME = ‘" & HMIRuntime.Tags("@CurrentUser").Read  &"’)"
 HMIRuntime.Trace "strSQL : " & strSQL & vbCrLf
 oRs.Open strSQL,oConn,1,1
 If Not oRs.eof Then
  MsgBox oRs("NAME")
   ‘HMIRuntime.Tags("GRPNAME").Write  oRs("NAME").Value
 End If
 ‘*********************卸载COM对象************************
 oRs.Close
 Set oRs = Nothing
 oConn.Close
 Set oRs = Nothing

提问者对于答案的评价:
非常感谢!你太强了!

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

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

相关推荐