2015-04-04 87 views
0

想知道是否有人可以幫助解決以下問題。我在西門子WinCC內使用Vbscript。當我激活腳本並且「lngValue」變量包含一個字母爲「BC」的字符串時,它會在嘗試插入數據庫時​​顯示錯誤。西門子WinCC VBscript到Mysql

如果「lngValue」是空的,那麼一個插入操作會被導入到mysql數據庫中,一直空白。 (所以連接一切OK,即使INT嘗試和努力)

我獲得以下錯誤:

[MySQL][ODBC 5.3(a) Driver][mysqld-5.6.19]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "BC' at line 1

的腳本如下:

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 

感謝史蒂夫。

+1

稍候...誰是史蒂夫?你爲什麼感謝他? – eggyal 2015-04-04 16:56:01

+0

檢查commandText字符串以查看真正發送到數據庫的內容 - 我打賭你會看到問題:MsgBox commandText – Bob 2015-04-05 02:40:24

回答

0

在Wincc SmartTags在您將它們調用到VBScript中時不會更新。可能當您構建查詢時,lngValue爲空,因爲SmartTags(「ProductRunning_Mydata.ChargehandInitials」)返回空字符串。 解決該問題的方法可能是在屏幕中插入與標籤「ProductRunning_Mydata.ChargehandInitials」關聯的隱藏文本框。當您進入屏幕時,SmartTag將被強制更新。

0

史蒂夫, 確保您在臨數據庫字段是 「字符串」(VARCHAR(X))

+0

它似乎不是一個答案。 – 2016-02-23 08:07:40

+0

我犯了一個錯誤,並發表:) 我還在寫... – RammRras 2016-02-23 08:15:22