西门子WinCC VBscript到Mysql

西门子WinCC VBscript到Mysql,mysql,vbscript,wincc,Mysql,Vbscript,Wincc,不知道是否有人可以帮助解决以下问题。我在西门子WinCC中使用Vbscript。当我激活脚本并且“lngValue”变量包含一个带有字母“BC”的字符串时,它在尝试插入数据库时显示一个错误 如果“lngValue”为空,那么将在mysql数据库中插入一个空的值,所有这些都可以。(因此,所有连接都正常,即使使用INT进行了尝试并已工作) 我发现以下错误: [MySQL][ODBC 5.3(a)驱动程序][mysqld-5.6.19]您的数据库中有一个错误 SQL语法;查看与MySQL服务器对应的手

不知道是否有人可以帮助解决以下问题。我在西门子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

谢谢Steve。

在Wincc中,在VBScript中调用SmartTags时,SmartTags不会更新。可能是在生成查询lngValue时,因为SmartTags(“ProductRunning_Mydata.ChargehandInitials”)返回空字符串,所以lngValue为空。 该问题的解决方案可能是在您所在的屏幕内插入一个与标记“ProductRunning\u Mydata.ChargehandInitials”关联的隐藏文本框。当您进入屏幕时,SmartTag将被迫更新。

Steve, 确保数据库中的字段为“string”(varchar(x))


尝试此操作

检查commandText字符串以查看真正发送到数据库的内容-我打赌您会看到问题:MsgBox commandTextIt似乎不是答案。虽然此代码片段可以解决问题,但确实有助于提高您的文章质量。请记住,您是在为将来的读者回答问题,并且这些人可能不知道您的代码建议的原因。
objConn.Open "Driver={MySQL ODBC 5.3 ANSI Driver};Server=127.0.0.1;Database=siemens;UID=root;PWD=root"