1

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

如果“lngValue”为空白,则将插入到 mysql 数据库中,一切正常。(所以连接一切正常,甚至尝试使用 INT 并工作)

我收到以下错误:

[MySQL][ODBC 5.3(a) Driver][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

谢谢史蒂夫。

4

3 回答 3

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

尝试这个

于 2021-01-21T11:24:07.347 回答
0

史蒂夫,确保你在 tha 数据库中的字段是“字符串”(varchar(x))

于 2016-02-23T07:43:37.437 回答
0

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

于 2015-09-25T14:13:47.263 回答