Why does a project need a default database connection when using transactions?
txID = system.db.beginTransaction(database = "LocalMYSQL")
query = """
INSERT INTO test(MyAge)
VALUE (?)
"""
s = system.date.toMillis(system.date.now())
system.db.runPrepUpdate(query, [s], tx = txID)
system.db.commitTransaction(txID)
system.db.closeTransaction(txID)
Java Traceback:
Traceback (most recent call last):
File "", line 8, in
INSERT INTO test(MyAge)
VALUE (?)
, [1721058713492], Transaction datasource 'LocalMYSQL', 40dd3b55-0c8e-4529-9d8e-4bac72824631, false, false)at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:392)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:268)
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.runPrepUpdate(
INSERT INTO test(MyAge)
VALUE (?)
, [1721058713492], Transaction datasource 'LocalMYSQL', 40dd3b55-0c8e-4529-9d8e-4bac72824631, false, false)at org.python.core.Py.JavaError(Py.java:545)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:392)
at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runPrepUpdate(AbstractDBUtilities.java:268)
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:553)
at org.python.core.PyObject.call(PyObject.java:400)
at org.python.pycode._pyx21.f$0(:10)
at org.python.pycode._pyx21.call_function()
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:1703)
at org.python.core.Py.exec(Py.java:1747)
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:628)
at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:616)
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.runPrepUpdate(
INSERT INTO test(MyAge)
VALUE (?)
, [1721058713492], Transaction datasource 'LocalMYSQL', 40dd3b55-0c8e-4529-9d8e-4bac72824631, false, false)... 25 more
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection Error: Unable to find project's default datasource.