西门子WinCC VBscript到Mysql

时间:2015-04-04 16:54:04

标签: mysql vbscript wincc

想知道是否有人可以帮助解决以下问题。我在Siemens WinCC中使用Vbscript。当我激活脚本并且“lngValue”变量包含字母“BC”的字符串时,它在尝试插入数据库时​​显示错误。

如果“lngValue”为空,那么插入一个mysql数据库就会变成空白一切正常。 (所以连接都可以,甚至尝试使用INT并且工作)

我收到以下错误:

  

[MySQL] [ODBC 5.3(a)驱动程序] [mysqld-5.6.19]你的错误   SQL语法;查看与MySQL服务器对应的手册   在第1行“BC”附近使用正确语法的版本

脚本如下:

Sub Writetomysql()

Dim lngValue 
Dim lngValue1
Dim commandText
Dim objConn
Dim objRS

 Set objConn = CreateObject("ADODB.Connection")
  objConn.Open "Driver={MySQL ODBC 5.3 ANSI Driver};Server=127.0.0.1;Database=siemens;UID=root;PWD=root;OPTION=3;"
  Set objRS = CreateObject("ADODB.Recordset")

lngValue  = SmartTags("ProductRunning_Mydata.ChargehandInitials")        
lngValue1 = HMIRuntime.Tags("PPM").Read

commandText = "INSERT INTO products (ProductName, PPM) VALUES ('" _
                      & lngValue & "','" & lngValue1 & "')"

    If SmartTags("FinishButton") = 1  Then 
        objRS.Open "products", objConn
        objConn.Execute commandText
        Set objRS = Nothing
        objConn.Close
        Set objConn = Nothing
    End If

End Sub

谢谢史蒂夫。

3 个答案:

答案 0 :(得分:0)

在Wincc中,当您将它们调用到VBScript中时,SmartTag不会更新。可能在构建查询时,lngValue为空,因为SmartTags(" ProductRunning_Mydata.ChargehandInitials")返回一个空字符串。 该问题的解决方案可能是插入与标签相关联的隐藏文本框" ProductRunning_Mydata.ChargehandInitials"在您所在的屏幕内。当您进入屏幕时,SmartTag将被强制更新。

答案 1 :(得分:0)

史蒂夫, 确保您在tha数据库中的字段是"字符串" (VARCHAR(X))

答案 2 :(得分:0)

objConn.Open "Driver={MySQL ODBC 5.3 ANSI Driver};Server=127.0.0.1;Database=siemens;UID=root;PWD=root"

试试这个