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