This query works in MySQL Workbench.
UPDATE db_os_manf_dashboard.production_log
SET machineId = 'AC03', event = 'live', cycleCount = 111, goodCount = 102, sku = '123 45'
WHERE (machineId = 'AC03') AND (event = 'live') AND id > 0;--
(The id > 0 is used to force MySQL safe update mode.)
Converting it to a runUpdateQuery results in the following error (text wrapped for legibility):
java.lang.Exception: java.lang.Exception: Error executing
system.db.runUpdateQuery(UPDATE db_os_manf_dashboard.production_log
SET machineId = ?, event = ?, cycleCount = ?, goodCount = ?, sku = ?
WHERE (machineId = ?) AND (event = 'live') AND (id > 0),
['AC03', 'live', 111, 102, u'123 45', 'AC03'], , false)
Full script console error log
Java Traceback:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<module:productionLogging.eventLog>", line 108, in liveCycleCount
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:362)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runUpdateQuery(AbstractDBUtilities.java:183)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
java.lang.Exception: java.lang.Exception: Error executing system.db.runUpdateQuery(UPDATE db_os_manf_dashboard.production_log SET machineId = ?, event = ?, cycleCount = ?, goodCount = ?, sku = ? WHERE (machineId = ?) AND (event = 'live') AND (id > 0), ['AC03', 'live', 24797782, 19926827, u'981 34', 'AC03'], , false)
at org.python.core.Py.JavaError(Py.java:547)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:362)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runUpdateQuery(AbstractDBUtilities.java:183)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.__call__(ScriptManager.java:541)
at org.python.core.PyObject.__call__(PyObject.java:477)
at org.python.core.PyObject.__call__(PyObject.java:481)
at org.python.pycode._pyx12.liveCycleCount$4(<module:productionLogging.eventLog>:114)
at org.python.pycode._pyx12.call_function(<module:productionLogging.eventLog>)
at org.python.core.PyTableCode.call(PyTableCode.java:173)
at org.python.core.PyBaseCode.call(PyBaseCode.java:150)
at org.python.core.PyFunction.__call__(PyFunction.java:426)
at org.python.pycode._pyx11.f$0(<input>:1)
at org.python.pycode._pyx11.call_function(<input>)
at org.python.core.PyTableCode.call(PyTableCode.java:173)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1687)
at org.python.core.Py.exec(Py.java:1731)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:277)
at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:130)
at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:611)
at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:599)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.Exception: Error executing system.db.runUpdateQuery(UPDATE db_os_manf_dashboard.production_log SET machineId = ?, event = ?, cycleCount = ?, goodCount = ?, sku = ? WHERE (machineId = ?) AND (event = 'live') AND (id > 0), ['AC03', 'live', 24797782, 19926827, u'981 34', 'AC03'], , false)
... 31 more
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Cannot run this function when in read-only mode.
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:384)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:283)
at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
at com.inductiveautomation.ignition.client.script.ClientDBUtilities._runUpdateQuery(ClientDBUtilities.java:257)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runUpdateQuery(AbstractDBUtilities.java:181)
... 29 more
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<module:productionLogging.eventLog>", line 108, in liveCycleCount
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:362)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runUpdateQuery(AbstractDBUtilities.java:183)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
java.lang.Exception: java.lang.Exception: Error executing system.db.runUpdateQuery(UPDATE db_os_manf_dashboard.production_log SET machineId = ?, event = ?, cycleCount = ?, goodCount = ?, sku = ? WHERE (machineId = ?) AND (event = 'live') AND (id > 0), ['AC03', 'live', 24797782, 19926827, u'981 34', 'AC03'], , false)
>>> Keyboard Interrupt
>>>
Can anyone spot what I’m doing wrong?