DatabaseUpdate
Description
The DatabaseUpdate object is used to update objects in a database table. The API is identical to DatabaseQuery except for the execute() method.
This object was introduced in InCore 2.5.
- › Inherits:
Overview
Properties
Methods
Signals
Enumerations
Properties
Methods
execute()
This method updates the columns specified by DatabaseQuery.objects and rows filtered through 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 DatabaseQuery.results property.
- › Returns:
Boolean
Example
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
}
}