想知道是否有人可以解决以下问题。我在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


谢谢史蒂夫。

最佳答案

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

08-06 15:51