2015-04-04 6 views
0

Подумайте, если кто-нибудь может помочь в решении следующей проблемы. Я использую Vbscript в Siemens WinCC. Когда я активирую скрипт, а переменная «lngValue» содержит строку с буквами «BC», она отображает ошибку при попытке вставить в базу данных.Siemens WinCC VBscript to Mysql

Если «lngValue» был пустым, тогда вставка была бы сделана в базу данных mysql, все пустое. (Таким образом, соединения все нормально, даже пытался с 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

Wait ... кто Стив? И почему вы его благодарите? – eggyal

+0

Проверьте строку commandText, чтобы узнать, что действительно отправлено в базу данных. Уверен, вы увидите проблему: MsgBox commandText – Bob

ответ

0

В Wincc SmartTags не обновляются, когда вы вызываете их в VBScript. Вероятно, когда вы создаете запрос, lngValue пуст, потому что SmartTags («ProductRunning_Mydata.ChargehandInitials») возвращает пустую строку. Решением проблемы может быть вставка скрытого текстового поля, связанного с тегом «ProductRunning_Mydata.ChargehandInitials» внутри экрана, в котором вы находитесь. Когда вы вводите экран, SmartTag вынужден обновляться.

0

Стив, Убедитесь, что поле в базе данных тха является "строка" (VARCHAR (х))

+0

Это не похоже на ответ. –

+0

Я сделал ошибку и опубликовал :) Я все еще пишу .... – RammRras

Смежные вопросы