刚接触Wincc不久,有个问题困扰我很久,特别来需求各位大侠的帮助.希望能得到解决问题的指点.在此先谢过了!!
需要通过Wincc实现特定的功能,具体为:通过字符串(如"A-11"),检索SQL2005数据库中的特定行内容,并显示在Wincc上.
论坛上查阅了好多资料,试着自己写了下代码,通过VB语言连接操作数据库,但是就是实现不了功能,发现通过整型或实型的变量进行检索时都能成功连接并操作数据库,显示在wincc上.
具体的连接和操作数据库的代码如下:
调试代码时,发现代码执行到 Set oRS = oCom.Execute 时,无法再执行下去,无法正确形成表列供读取。
哪位大侠帮忙看看代码哪里设置错误,或者变量哪里设置有问题。非常感谢
测试使用代码如下:
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim sPro, sDsn, sSer,sCon, sSql
Dim sVid, sVal, lRet, sRel
Dim conn,oRs,oCom
Dim m,n,s,nRec
Dim susr
Dim data1,data2,data4,data5,data6,data7
' 0.0 Get parameters from picture
data7=HMIRuntime.Tags ("F_String1").read
MsgBox"'"& data7 &"'"
sSql="SELECT * FROM UA#TEST WHERE F_String ="& data7 &""
' 1.1 Make connection string for ADODB as indicated below
sPro = "Provider=SQLOLEDB;"
sSer = "Data Source=xbo-PC\WinCC;"
susr = "Integrated Security=SSPI; Persist Security Info=false;"
sDsn = "Initial Catalog=CC_OpConPac_17_07_27_15_18_42R;"
sCon = sPro + sSer + susr + sDsn
'lRet = MsgBox("Opened with " & vbCr & sCon & vbCr & sSql & vbCr, vbOKCancel)
MsgBox"Opened with " & vbCr & sCon & vbCr & sSql & vbCr, vbOKCancel
' 2.1 Make connection
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = sCon
conn.CursorLocation = 3
conn.Open
' 2.2 Use command text for query
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = sSql
MsgBox sSql
'On Error Resume Next
Set oRs = oCom.Execute
m = oRs.Fields.count
MsgBox"'"& m &"'"
MsgBox"'"& sSql &"'"
data6=oRs.Fields(1).Value
data4=oRs.Fields(2).Value
MsgBox"'"& data4 &"'"
MsgBox"'"& data6 &"'"
Set data1=HMIRuntime.Tags ("F_Float")
data1.Read
data1.Write data4
HMIRuntime.Tags ("F_Integer").Write data6
MsgBox("&F_Integer&")
oRs.close
conn.Close
Set conn = Nothing
End Sub





