.. _object_DatabaseUpdate: :index:`DatabaseUpdate` ----------------------- Description *********** The DatabaseUpdate object is used to update objects in a database table. The API is identical to :ref:`DatabaseQuery ` except for the :ref:`execute() ` method. This object was introduced in InCore 2.5. :**› Inherits**: :ref:`DatabaseQuery ` Overview ******** Properties ++++++++++ .. hlist:: :columns: 2 * :ref:`DatabaseQuery.error ` * :ref:`DatabaseQuery.errorString ` * :ref:`DatabaseQuery.filters ` * :ref:`DatabaseQuery.limitLength ` * :ref:`DatabaseQuery.limitPos ` * :ref:`DatabaseQuery.objects ` * :ref:`DatabaseQuery.orderBy ` * :ref:`DatabaseQuery.orderByNames ` * :ref:`DatabaseQuery.results ` * :ref:`DatabaseQuery.table ` * :ref:`Object.objectId ` * :ref:`Object.parent ` Methods +++++++ .. hlist:: :columns: 1 * :ref:`execute() ` * :ref:`DatabaseQuery.execute() ` * :ref:`DatabaseQuery.pollResults() ` * :ref:`Object.deserializeProperties() ` * :ref:`Object.fromJson() ` * :ref:`Object.serializeProperties() ` * :ref:`Object.toJson() ` Signals +++++++ .. hlist:: :columns: 1 * :ref:`DatabaseQuery.errorOccurred() ` * :ref:`DatabaseQuery.filtersDataChanged() ` * :ref:`DatabaseQuery.objectsDataChanged() ` * :ref:`DatabaseQuery.orderByDataChanged() ` * :ref:`Object.completed() ` Enumerations ++++++++++++ .. hlist:: :columns: 1 * :ref:`DatabaseQuery.Error ` Properties ********** Methods ******* .. _method_DatabaseUpdate_execute: .. index:: single: execute execute() +++++++++ This method updates the columns specified by :ref:`DatabaseQuery.objects ` and rows filtered through :ref:`DatabaseQuery.filters `. If at least one row has been updated and no error occurred, ``true`` is returned, otherwise ``false``. The number of updated rows can be retrieved using the :ref:`DatabaseQuery.results ` property. :**› Returns**: Boolean .. _example_DatabaseUpdate: Example ******* .. code-block:: qml import InCore.Foundation 2.5 import InCore.Database 2.5 Application { LocalDatabase { id: exampleDatabase DatabaseTable { id: exampleTable // submit a new data row every 10s submitInterval: 10000 submitMode: DatabaseTable.SubmitPeriodically onSubmitted: lastIdQuery.execute() DataObject { id: exampleTableId objectId: "id" dataType: DataObject.SignedInteger DatabaseFieldOptions.primaryKey: true DatabaseFieldOptions.autoIncrement: true } Measurement { id: sensor1 data: 1 onDataChanged: updateSensor1.execute() } Measurement { id: sensor2 data: 123 } queries: [ // always update last row with latest value of sensor1 DatabaseUpdate { id: updateSensor1 objects: [sensor1] DatabaseQueryFilter { DatabaseQueryWhere { key: exampleTableId operation: DatabaseQueryWhere.Equals value: lastIdQuery.results[0] ? lastIdQuery.results[0].id : -1 } } }, DatabaseQuery { id: lastIdQuery objects: [exampleTableId] orderByNames: ["-id"] limitPos: 0 limitLength: 1 } ] } } Timer { onTriggered: sensor1.data = Math.random() * 100 } }